본문 바로가기

[2019.07.02] Virtual Memory 프로세스는 조각되어 들어가기 때문에 main memory에 연속적으로 들어갈 필요가 없다. - Virtual memory의 이점 main memory 크기와 상관없이 더 큰 process도 실행할 수 있다. 더 많은 process 들이 main memory에 올라온다. -> CPU가 노는 시간이 줄어든다. 현재 실행 중인 process들이 다 I/O가 되어 blocked 상태이면 CPU가 논다. -> swapping이 제안되었지만 suspended로 보내는 것도 process를 디스크에 올리는 데 오래 걸림 -> VM이 제안됨. 조금씩만 memory에 올림. - Program 실행 1. OS가 program의 조각 조금을 main memory에 가져온다. 2. main memory에 없는 주소가 요구되면.. 더보기
[2019.07.01] Memory Management memory 할당 및 할당 후 보호 요구사항 - Relocation : 프로세스는 실행하는 동안 다른 메모리 위치를 점령한다. 프로그램이 실행되는 동안 디스크로 swap 되고 다른 위치의 main memory로 반환된다. - Sharing : 몇몇 process들이 memory의 같은 부분에 접근하는 걸 허용 Memory Partitioning - Equal-size Paritioning : 모든 process의 memory를 똑같이 할당한다. 하지만 이러면 안쓰게 되는 부분(internal fragmentation)있다. 메모리 낭비. - Unequal-size Partitioning : memory 공간을 효율적으로 할당할 수 있지만 시간, OS가 낭비 된다. - Dynamic Partitioning.. 더보기
[2019.06.28] Concurrency : Deadlock and Starvation Deadlock : 두개 이상의 process가 자원을 기다리는 데 일어나는 충돌. 각자 자원을 가지고 있는 상태에서 다른 거 요청할 때 일어난다. - Reusable Resources : 한번에 하나의 프로세스에만 사용되며 그 사용으로 고갈되지 않는다. ex. Processor, I/O channels, main memory, semaphore ... 예제. memory 공간에 200KB의 가용 공간이 있다. P1에는 80KB 다음 60KB를 요구하는 statement가 있다. P1에서 80KB를 요구하는 statement를 실행하고 (남은 메모리 120) context switch 일어나서 P2를 실행한다. P2에는 70KB 다음 80KB를 요구하는 statement가 있다. 70KB를 할당해주고 (.. 더보기