CS/OperatingSystem9 캐시의 지역성 캐시의 지역성 원리 캐시 메모리는 속도가 빠른 장치와 느린 장치간의 속도차에 대한 병목현상을 줄이기 위한 범용 메모리이다. 프로세서와 메인 메모리간의 처리 속도를 보완하기 위한 고속 버퍼이다. CPU가 어떤 데이터를 원하는지 어느정도 예측 가능해야 한다. 캐시의 성능은 작은 용량의 캐시 메모리에 CPU가 참조할, 쓸모있는 정보가 어느 정도 들어 있는가에 따라 성능은 좌우된다. Hit rate를 극대화 시키기 위해 데이터의 지역성의 원리를 적용한다. 지역성의 전제조건으로 프로그램은 모든 코드나 데이터를 균등하게 Access하지 않는다는 특성을 기본으로 한다. + cache miss Capacity Miss 캐시 메모리가 작아서 발생. Compulsory Miss 특정 데이터 접근 시 캐시에 존재하지 않아서.. CS/OperatingSystem 2021. 4. 25. 가상메모리 가상메모리 다중 프로그래밍을 실현하기 위해서는 많은 프로세스들을 동시에 메모리에 올려두어야 한다. 가상 메모리는 프로세스 전체가 메모리 내에 올라오지 않더라도 실행이 가능하도록 하는 기법이며, 프로그램이 물리 메모리보다 커도 된다는 주요 장점이 있다. 가상 메모리 개발 배경 실행되는 코드의 전부를 물리 메모리에 존재시켜야 했고, 메모리 용량보다 큰 프로그램은 실행이 되지 않는다. 또한 여러 프로그램을 동시에 메모리에 올리기에는 용량의 한계와, 페이지 교체등의 성능 이슈가 발생하게 된다. 또한 가끔만 사용되는 코드가 차지하는 메모리들을 확인할 수 있다는 점에서, 불필요하게 전체의 프로그램이 메모리에 올라와 있어야 하는게 아니라는 것을 알 수 있다. ※ 프로그램의 일부분만 메모리에 올릴 수 있다면 메모리( .. 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. 이전 1 2 다음