운영체제와 메모리 관리

박현석·2024년 7월 9일

커널

운영체제는 크게 인터페이스(쉘)와 커널의 구조로 되어있다.
커널에는 핵심적인 기능들이 모여있고 쉘에는 보다 편리하게 이용하게 해준다

커널의 개념은 즉 운영체제의 핵심적인 기능이 모여있는 컴퓨터 프로그램이다
컴퓨터가 부팅될 때 주기억장치에 적재후 상주하며 실행된다
프로그램과 하드웨어간의 인터페이스를 담당한다.

운영체제에서 페이징을 사용하는 이유?

페이징 기법은 운영체제에서 메모리의 할당기법중 연속할당기법의 방법이다.
가상 기억장치에 보관되어 있는 프로그램과 주기억장치의 영역을
동일한 크기로 나눈 후 나눠진 프로그램을 동일하게 나눠진 주기억장치 영역에 적재시켜 실행한다.

페이징 기법은 외부 단편화의 문제를 해결하기 위한 방안
하지만 동일한 크기로 나눠지면서 각 할당되는 메모리의 크기는 다르기 때문에 내부단편화가 발생할수 있다.

가상 메모리

가상 메모리는 프로세스가 메모리 외부에서 실행되도록 하는 기술이다.

이 기술은 실제 물리 메모리의 제약을 극복하기 위해 고안했다.
가상 메모리를 사용하면 프로그램이 실제 물리적 메모리보다 더 많은 메모리를 사용할 수 있게 된다
주로 하드 디스크와 같은 보조 저장 장치를 활용하여 이루어진다.

뮤텍스 / 세마포어 기법

Mutex 뮤텍스

임계구역을 가진 스레드들의 실행시간이 서로 겹치지 않고 각각 단독으로 실행 되도록 하는 기술(동기화 대상이 하나)
(상호배제 기법을 고안한 기술)

Semaphore 세마포어
공유된 자원의 데이터 혹은 임계영역 등에 여러 Process 혹은 Thread가 접근하는 것을 막아줌 (동기화 대상이 하나 이상)

메모리 배치 기법 중...

메모리 관리 중 디스크에 있는 프로세스를 주기억장치의 어느 위치에 저장할 것인지 결정하는 기법이다.

세부 기법으로 First-fit, best-fit, worst-fit
각각 최초 적합, 최적 적합, 최악 적합 으로 이루어진다.
first-fit = 프로세스가 적재 될수 있는 가용 공간 중 첫 번째 분할에 할당
best-fit = 가용 공간 중 가장 크기가 비슷한 공간을 할당
Worst-fit = 프로세스의 가용 공간중 가장 큰 공간에 할당

메모리 단편화

분할된 주기억장치에 프로세스를 할당, 반납 과정에서 사용되지 못하고 낭비(잉여) 되는 현상

주로 메모리를 적재한 후 남은 공간이다.

내부 단편화는 아래 그림과 같이 Partition의 크기가 프로세스의 크기보다 커서 메모리가 남지만, 다른 프로세스가 사용할 수 없는 상태를 말한다.

외부 단편화는 남아있는 메모리의 크기가 실행하고자 하는 프로세스보다 크지만, 연속적이지 않은 공간에 존재하여 실행하지 못하는 현상을 의미한다.

내부단편화를 해결하기 위해 슬랩 할당자 기법이나, 통합 또는 압축을 통해 해결할수 있다.

슬랩 할당자 - 페이지 프레임을 할당받아 공간을 작은 크기로 분할하고 메모리 요청시 작은 크기로 메모리를 할당/해제하는 **동적 메모리** 관리 기법
통합 - 인접한 단편화 영역을 찾아 하나로 통합하는 기법
압축 - 메모리의 모든 단편화 영역을 하나로 압축하는 기법

외부 단편화를 해결하기 위한 방안 역시 통합과 압축이 있고 버디 메모리 할당 방식을 이용하기도 한다

버디 메모리 할당 - 요청한 프로세스 크기에 가장 알맞은 크기를 할당하기 위해 메모리를 2^n 의 크기로 분할하여 메모리를 할당하는 기법
profile
너에게만광대

0개의 댓글