CS30 가상메모리 가상메모리 다중 프로그래밍을 실현하기 위해서는 많은 프로세스들을 동시에 메모리에 올려두어야 한다. 가상 메모리는 프로세스 전체가 메모리 내에 올라오지 않더라도 실행이 가능하도록 하는 기법이며, 프로그램이 물리 메모리보다 커도 된다는 주요 장점이 있다. 가상 메모리 개발 배경 실행되는 코드의 전부를 물리 메모리에 존재시켜야 했고, 메모리 용량보다 큰 프로그램은 실행이 되지 않는다. 또한 여러 프로그램을 동시에 메모리에 올리기에는 용량의 한계와, 페이지 교체등의 성능 이슈가 발생하게 된다. 또한 가끔만 사용되는 코드가 차지하는 메모리들을 확인할 수 있다는 점에서, 불필요하게 전체의 프로그램이 메모리에 올라와 있어야 하는게 아니라는 것을 알 수 있다. ※ 프로그램의 일부분만 메모리에 올릴 수 있다면 메모리( .. CS/OperatingSystem 2021. 4. 23. 메모리 관리 전략 메모리 관리 각각의 프로세스는 독립된 메모리 공간을 갖고, OS 혹은 다른 프로세스의 메모리 공간에 접근할 수 없다. 단지, OS만이 운영체제 메모리 영역과 사용자 메모리 영역의 접근에 제약을 받지 않는다. 연속 메모리 관리 프로그램 천제가 메모리에 연속적으로 할당하는 기법. 고정 분할 기법 : 메모리가 고정된 파티션으로 분할하는 방법.(내부 단편화) 동적 분할 기법 : 파티션들이 동적 생성되면 자신의 크기와 같은 파티션에 적재(외부 단편환) 불연속 메모리 관리 프로그램의 일부가 서로 다른 주소 공간에 할당될 수 있는 기법. 페이지 : 프로세스를 고정된 크기의 작은 블록으로 나누었을 때 , 해당 블록을 페이지라고 함. 프레임 : 페이지의 크기와 같은 주기억 장치 메모리 블록(실제 주소) 세그먼트 : 서로.. CS/OperatingSystem 2021. 4. 22. 프로세스 동기화 Critical Section (임계 영역) 임계 영역이란 멀티 스레딩에 문제점에서 나오듯, 동일한 자원을 동시에 접근하는 작업을 실행하는 코드 영역을 Critical Section 이라 칭한다. 동시에 접근하는 작업 = 공유 변수,파일 등... 임계 영역의 문제 여러 프로세스들이 Critical Section을 함께 사용할 수 있는 프로토콜을 설계하는 것. Requirements Mutual Exclusion (상호 배제) 프로세스 P1이 Critical Section에서 실행중이라면, 다른 프로세스들은 그들이 가진 Critical Section에서 실행 될 수 없다. 오직 하나의 쓰레드만이 진입 가능하다. Progress(진행) Critical Section 에서 실행중인 프로세스가 없고, 별도의 동.. CS/OperatingSystem 2021. 4. 21. Blocking, Non-Blocking and Async Blocking I/O Model I/O 작업은 User level(application)에서 직접 수행할 수 없기에, 실제 작업은 Kernel Level(OS)에서 일어나는 과정이다. 따라서 유저 프로세스(application)는 커널(OS)에게 I/O 작업에 대해 요청한다. I/O 작업이 끝나고 데이터를 반환하게 되면 그때가 돼서야 애플리케이션 단의 스레드의 block이 해제된다. 애플리케이션의 관점에서는 아무런 동작은 안하는 것처럼 보인다. 하지만 실제로 I/O 작업을 하느라 Block이 되어 있고 커널에서 작업을 하고 있기 때문에 렉이 걸린 것처럼 보이는 것이다. 이 block되어 기다리는 시간이 이 Blocking I/O 문제이며 개선되어야 할 포인트다. Syncronous, Blocking I.. CS/OperatingSystem 2021. 4. 21. 스케줄러 알고리즘 ※ 스케줄링 대상은 Ready Queue에 있는 프로세스 들이다. FCFS ( First Come First Served ) 먼저 온 순서대로 처리. 비선점형 스케줄링 (Non Preemptive) 일단 CPU를 잡으면 CPU Burst 가 완료 될 때까지 CPU를 반환하지 않는다. CPU를 모두 사용한 후 반환되면 스케줄링이 이루어진다 문제점 Convoy Effect Burst Time 이 긴 프로세스가 들어와 실행시간이 전부 늦쳐지는 현상. SJF 프로세스 처리시간이 짧은 것을 먼저 처리하는 방식.( 다른 프로세스가 먼저 도착해도 처리시간이 짧은 것 먼저) 비선점형 스케줄링 일단 CPU를 잡으면 CPU Burst가 완료될 때까지 CPU를 반환하지 않는다. CPU를 반환될 때만 스케줄링이 이루어진다. .. CS/OperatingSystem 2021. 4. 19. 이전 1 2 3 4 5 6 다음