운영체제

운영체제

Segmentation & Paging

Overview 프로세스마다 가상 주소공간을 가진다. 그리고 여러 프로세스는 물리 메모리를 공유해서 사용한다. 이 때, 프로세스간의 물리 메모리 영역은 확실히 구분되어야 할 것이다. 이를 구분하기 위한 가장 단순한 방법은 가상 주소 공간 크기 그대로 연속적인 물리 메모리를 할당하는 것이다. 하지만, 이는 너무 비효율 적이다. free space 를 최대 크기로 잡는 것은 너무 크고, 적당히 할당한다고 하더라도, 동적으로 크기가 변하기 때문에 이를 감당하지 못하면 프로세스가 제대로 동작하지 못할 것이다. 따라서, OS 에선 이를 해결하기 위해 크게 두가지 방법을 사용한다. Segmentation 가상 메모리의 여러가지 영역을 분리하여, 물리 메모리를 쪼개어 사용하는 방식이다. 단순하다는 장점이 있지만, 외..

운영체제

Synchronization

OS 는 여러가지 동기화 기법을 제공한다. 동기화 기법이 왜 필요할까? 가장 큰 이유는 공유하는 자원에 대하여 두개 이상의 프로세스가 접근할 때 문제가 생기지 않아야 하기 때문이다. 대표적인 문제로 race condition 을 들 수 있는데, 말 그대로 프로세스간의 경쟁이 일어나는 상황이다. 위 예시에서 각 프로세스가 공유하는 Bank 라는 자원에 대하여 1을 더하는 동작을 수행하기 때문에 결과는 19여야 하지만, 동기화가 적절히 이루어지지 않는다면 위와 같은 문제가 발생하는 것이다. spinlock 공유자원에 대하여 lock 을 취득한 프로세스만 이와 관련한 작업을 처리할 수 있도록 해주는 OS 동기화 기법이다. 이때 프로세스는 lock 을 취득하기 위해 busy-waiting 한다. 즉 sleep ..

운영체제

Scheduling

왜 필요한가? 싱글코어 환경에 CPU에서 여러개의 태스크를 병렬적으로 처리하는 것 처럼 보이려면 스케쥴링은 필수적이다. 싱글코어가 아니더라도, 멀티코어에서 실제 병렬적으로 처리되는 태스크는 코어 개수만큼에 불과하기 때문에 마찬가지로 스케쥴링이 요구된다. 그 뿐만 아니라, 태스크간에 우선순위도 분명 존재하기 때문에 이를 적절히 조절하여 사용성을 높이기 위해선 스케쥴링은 필수적이다. 간단하게 어떤 태스크가 수행중이라고 마우스 입력을 처리하는 태스크가 무시되선 안되는 상황을 생각해 볼 수 있다. -> 마우스 입력을 처리하는 것은 인터럽트이기 때문에 위 예시는 적절하지 않다. 다른 예시로, 웹 브라우저와 바이러스 스캐너, 워드 프로세서 3가지 프로그램이 동작하고 있다고 가정해보자. OS는 세가지 프로그램 중 ..

운영체제

Virtual Memory

OS에서 프로세스는 자원 소유권의 단위이다. 여기서 말하는 자원에는 여러 종류가 존재하는데, 프로그램 실행을 위한 명령어 집합이 포함될 코드 영역, 프로그램 수행 중 여러 값을 저장하는데 사용될 힙 영역, Last-In-First-Out 방식으로 함수 호출과 지역변수를 저장하는데 활용될 스택 영역, 초기화된 글로벌 변수와 정적 변수가 저장될 데이터 영역, 초기화 되지 않은 글로벌 변수와 정적 변수가 저장될 BSS 영역 이 모두 프로세스가 소유하는 자원에 해당한다. 초기화 여부로 데이터 영역과 BSS 영역 영역을 구분하는 이유가 뭘까? 가장 큰 이유는 BSS 영역을 구분하여 프로그램 바이너리 파일(실행파일)의 크기를 줄일 수 있다는 것이다. 바이너리 파일은 기본적으로 코드 영역, 데이터 영역, BSS 영역..

운영체제

IPC (Inter-Process Communication)

IPC는 프로세스 간의 통신을 의미하며, 관련하여 OS에서 제공하는 여러가지 기술과 메커니즘이 존재한다. 왜 필요한가? 우선 프로세스는 자신만의 가상 메모리를 가지며 자신만의 작업을 수행한다. 프로세스별 자원을 분리시키는 것에는 시스템을 보호하기 위해서, 여러가지 작업을 병렬적으로 수행하기 위해서, 효율성을 위해서와 같이 다양한 이유가 존재한다. 하지만, 분명히 프로세스간에도 통신이 필요한 상황이 존재한다. 아주 단순하게 생각하면 모든 프로세스끼리 자원을 공유하게 하는 방법으로도 프로세스간 통신이 가능하겠지만, 상당히 비효율적이고 시스템 또한 전혀 보호되지 않아 많은 문제가 발생할 것이다. 그렇기 때문에, OS는 다양한 IPC 메커니즘을 제공하여 프로세스간 통신을 원할하게 한다. 어떤 방법이 있는지 하나..

sjoonb
'운영체제' 카테고리의 글 목록