Operating System 5

[OS] 프로그램이 메모리 사이즈보다 크다면? - 메모리 오버레이 기법

다음과 같은 상황을 생각해보자. - 메모리의 용량이 작을 때 이보다 큰 사이즈의 프로그램을 실행시키려면 어떻게 해야할까? - 고정 분할방식으로 나뉜 메모리의 page 사이즈보다 프로그램의 사이즈가 크면 어떻게 해야할까? 메모리공간 < 프로그램사이즈인 위와 같은 상황에서는 프로그램을 쪼개어야 메모리에 할당할 수 있다. 이 때 프로그램의 명령어와 데이터들(instructions and data)을 Module로 나누어 먼저 실행되어야하는 모듈을 메모리에 우선적으로 할당하고, 다음 모듈을 실행하기 위해서는 이전의 모듈을 swap area로 옮겨 메모리를 관리하는 방식을 메모리 오버레이 기법이라고 한다. 1번의 예에서 메모리 오버레이 기법을 통해 메모리를 관리하는 방법을 자세히 살펴보면 다음과 같다. - 현재에..

CS/OS 2021.11.14

[OS] 멀티태스킹, 멀티프로세싱, 멀티스레드

멀티태스킹, 멀티프로세싱, 멀티스레드 각각의 특징과 차이에 대해 알아보자. 이를 이해하기 위해서는 먼저 프로세스, 스레드 그리고 병렬처리에 대한 개념을 알고 있어야한다. 프로세스(Process)란, 저장장치의 프로그램을 실행하어 메모리에 load 되어진 상태이다. 프로세스 = 프로그램 + 프로세스제어블록(PCB) 스레드(Thread)란, 프로세스의 코드에 정의된 절차에 따라 CPU에 작업 요청을 하는 실행 단위이다. 즉, 작은 단위의 일(Operation)이 모여 하나의 작업(Task)이 될 때, 이 작은 단위의 일을 수행하는 것을 스레드라고 할 수 있다. JOB > TASK > OPERATION == 작업 > 프로세스 > 스레드 병렬처리(Parallel Processing) 동시에 여러 명령을 수행하여..

CS/OS 2021.08.07

[OS] 프로세스의 통신 (IPC: Inter-Process Communication)

프로세스는 실행되면서 다른 프로세스에 독립적(independent) OR 협력적(cooperating)이다. 여러 프로세스가 서로 협력적인 관계일 때는 프로세스간에 데이터를 공유하게 되는데, 이 때의 통신을 IPC (Inter-Process Communication) 이라고 한다. 즉, IPC란 프로세스간에 데이터를 주고(send) 받는(receive)것을 말한다. 특정 A프로세스에서 생산하면 (Producer) 이를 B프로세스에서 소비하는 (Consumer) 협동적인 프로세스간 구조에서의 데이터 통신 방법 2가지를 알아보자. IPC 통신방법 1) 공유메모리 사용 (Shared Memory) : memory 내부에 여러 프로세스에서 접근할 수 있는 공유메모리에 buffer를 만들어 생산자(Producer..

CS/OS 2021.07.29

[OS] 운영체제의 프로세스 관리

운영체제의 여러 기능중에는 프로세스 관리가 있다. 이번 게시글에서는 프로세스란 무엇이며, 운영체제에서 어떻게 관리되는지 공부해보자. Process란 무엇인가? A process is a program in execution. : 프로세스란 실행중인 프로그램을 말한다. 컴퓨터의 저장소(HDD) 에는 많은 파일과 프로그램들이 있는데, 이를 실행시키기 위해 메모리에 load하면 프로세스로 불리는 것이다. 그리고 이 때, 프로세스는 다음 그림과 같이 메모리에 여러 영역으로 나뉘어 저장된다. o Text section : 소스코드의 명령어 o Data section : 소스코드의 전역변수 o Heap section : 동적 메모리 할당 (dynamic memory allocation) - ex. malloc, n..

CS/OS 2021.07.23

[OS] 운영체제가 도대체 뭘까?

우리가 흔히 알고있는 Windows, Linux, MaxOS, Android, IOS, Ubuntu 등등.. 운영체제(OS)는 많은 종류들이 있다. 그렇다면 OS란 무엇이고 어떤 기능들을 수행하는지 한 번 알아보자. 운영체제(OS: Operating System)란, A software that operates a computer system The one program running at all times on the computer 한마디로 표현하자면 컴퓨터 시스템을 운영하기위한 소프트웨어 이다. OS는 컴퓨터를 켜면 제일 먼저 실행되어 항상 동작하는 프로그램으로, 컴퓨터가 정보를 처리할 수 있도록 한다. 예를 들어, OS는 프로그램의 명령어들을 실행하며 동작하도록 하고, I/O 기기들을 제어하기도 ..

CS/OS 2021.07.17