2024. 2. 27. 21:18ㆍCS/운영체제 &
📝 '혼자 공부하는 컴퓨터 구조 + 운영체제'를 공부하고 있습니다. 틀리거나 다른 부분이 있을 수 있습니다.
프로세스와 외부 단편화
실행하는 프로그램을 프로세스라 한다. 참고로, 쓰레드는 프로세스가 할당 받은 자원을 이용하는 실행 단위라고 한다.
프로세스는 메모리에 할당되는데, 메모리에 프로세스를 순서대로 할당할 수 있다. 하지만 이 때 발생하는 문제점은 외부 단편화(external gragmentation)가 발생한다는 점이다!!
외부 단편화는 사용 가능한 메모리 공간은 충분하지만, 실제로는 해당 메모리에 할당할 수 없는 상황을 말한다.
예를 들어보자. 프로세스가 실행되고, 그 기능을 다하고 종료될 수 있다. 프로세스들이 순서대로 할당되었는데, 종료된 프로세스들이 중간중간 생길 수 있다. 예를 들어, A / B / C / D / E 이렇게 할당되어 있는, 대문자의 이름을 가진 프로세스들이 있다고 가정해보자. 이 프로세스들 중에 B와 D가 종료될 수 있다. 그러면 A / / C / / E 가 실행중임을 확인할 수 있다. 이 때 문제가 발생한다. F라는 프로세스가 할당되어야 하는데, F 크기가 B + D 보다 더 큰 프로세스였던 것이다!!!
그렇다면 이 문제를 해결하기 위한 방법은 없을까? 여러 방법이 있다. 그 중 하나가 페이징(paging)이다!!
페이징
프로세스의 주소 공간을 일정한 단위로 자른다. 잘게 조개진 것을 페이지라고 하는데, 페이지를 메모리 공간인 프레임에 할당하는 기법을 페이징이라고 한다.
이 때 중요한 점이, 프로세스가 나뉘어져있기 때문에 잘개 조개진 페이지와 프레임이 연결될 수 있는 것이 필요하다. 이것이 페이지 테이블이라고 한다.
References
1. 혼자 공부하는 컴퓨터 구조 + 운영체제, 강민철, 한빛미디어
2. 혼자 공부하는 컴퓨터 구조 + 운영체제 (38~40강)
'CS > 운영체제 &' 카테고리의 다른 글
| [Linux] 작업 스케줄러 - Crontab (0) | 2024.05.28 |
|---|---|
| [Linux] 리눅스와 친해지려고 노력중 (0) | 2024.02.15 |
| [Linux] 리눅스 사용을 위한 VM (2) | 2024.02.09 |