목록CS (30)
빙응의 공부 블로그

📝서론 페이징은 전에서 설명하듯이 상당한 성능 저하가 올 수 있다. 페이징은 페이지 테이블을 통해 매핑 저장 정보를 가져온다. 이것은 매번 메모리에 접근한다는 것으로 시간적으로나 공간적으로나 모두 손해가 심각한다.우리는 페이징의 주소 변환 속도를 향상 시켜야 한다.📝TLB운영체제의 실행 속도 개선을 위해 우리는 대부분의 경우 하드웨어로부터 도움을 받는다.주소 변환을 빠르게 하기 위해서 변환-색인 버퍼 또한 TLB라고 부르는 메모리 관리부(MMU)를 두기 시작한다. TLB의 기본 알고리즘TLB는 쉽게 말하면 캐시와 비슷하다. TLB에 변환 정보를 저장하여 만약 TLB에 들어있다면 메모리에 접근하지 않고 정보를 얻을 수 있다. 흐름을 살펴보자가상 주소에서 페이지 번호만 뽑아낸다.어느 페이지에 있지?TLB..

📝서론 운영체제는 거의 모든 공간 관리 문제를 해결할 때 두 가지 중 하나를 사용한다.가변 크기의 조각들로 분할하는 것(세그먼테이션)가변 크기로 분할하게 되면 공간 자체의 단편화가 발생메모리 할당이 점점 어려워진다.동일 크기의 조각들로 분할하는 것(페이징)유연성 개선 : 프로세스의 주소 공간 사용방식과는 상관없이 효율적인 주소 공간 개념 지원빈 공간 관리의 단순함운영체제는 모든 비어있는 페이지의 빈 공간 리스트만 유지하면 된다.운영체제는 페이지 테이블을 프로세스마다 유지 📝간단한 예제 및 개요페이징에 대해 명확히 이해하기 위해 간단한 예를 살펴보자아래 그림은 가상 메모리를 작은 단위로 쪼개서 페이지라 부르며 아래와 같이 구성된다. 물리 메모리는 아래 그림과 같이 고정 크기의 슬롯들로 이루어진다.물..

📝서론 : 세그먼트의 단점이번 장에서는 세그먼트에서 발생한 빈 공간인 외부 단편화 관리에 대해 알아볼 것이다. 빈 공간을 어떻게 관리할까?- 가변 크기의 요구를 충족시켜야 할 때, 빈 공간은 어떻게 관리하지?- 단편화를 최소하하기 위해 어떤 전략을 사용하지?- 여러 대안들의 시간과 공간적 오버헤드는 얼마지? 📝시작 전 가정malloc() 과 free() 에서 제공하는 것과 같은 기본 인터페이스를 가정한다.힙의 빈 공간을 관리하기 위해 링크드리스트를 사용한다.물론, 빈 공간을 표현할 수 있는 자료구조면 어떤 것이든 가능하다.클라이언트에게 할당된 메모리는 다른 위치로 재배치될 수 없다고 가정 한다. 📝20.2 저수준 기법들분할(splitting) 및 병합(coalescing)에 대해 알아보자 분할과 ..

📝서론 : 베이스와 바운드 방식의 단점전 시간에는 베이스와 바운드 방식을 배웠습니다. 하지만 이 방식에도 단점이 존재합니다.바로 비효율적인 메모리 사용에 있습니다. 아래 그림처럼 전통적인 주소 공간은 힙이 아래쪽으로 스택은 위쪽으로 자랍니다. 이 둘이 충돌하지 않도록 충분한 여유 공간을 남겨둡니다. 여기에서 문제가 발생합니다.베이스와 바운드 방식은 프로세스의 전체 주소 공간을 물리 메모리에 통째로 적재하기에 힙과 스택 사이의 미사용 공간까지 물리 메모리를 차지하게 됩니다.주소 공간이 물리 메모리보다 큰 경우 실행이 어렵다는 단점이 있습니다. 📝19.1 세그멘테이션 : 베이스/바운드의 일반화앞서 베이스와 바운드 레지스터는 하나로 프로세스 전체 주소 공간을 통제했습니다.이곳에서 스택과 힙 사이 미사용 ..

📝16 주소 공간의 개념 초기에는 컴퓨터 시스템 구현이 쉬웠다. 왜냐하면 사용자가 많은 것을 기대하지 않았기 때문이다.이 모든 문제를 만든 사람들은 바로 "사용의 편이", "고성능", "신뢰성" 등을 기대한 사용자이다. CPU에 대한 효율성 개선을 위한 시분할 시스템이 등장하면서 운영체제에서 새로운 요구 사항이 생기기 시작했다.여러 프로그램이 메모리에 동시에 존재하려면 보호가 중요한 문제가 된 것이다. 📝16.1 주소 공간운영체제는 사용하기 쉬운 메모리 개념을 만들어야 한다. 이 개념을 주소 공간이라 한다.실행 중인 프로그램이 가정하는 메모리의 모습이며 실행 프로그램의 모든 메모리 상태를 갖고 있다. (코드, 스택, 힙 등) 메모리를 어떻게 가상화할까?운영체제는 물리 메모리를 공유하는 다수의 ..

지금까지 우리는 단일 프로세스 스케줄링에 대해 알아보았다.그러나 시대가 변하게 되면서 이 원칙들을 여러 CPU 환경에서 동작하도록 바꿔야할 필요성이 대두되었다.여러 CPU에 작업을 어떻게 스케줄 해야 하는가?운영체제는 어떻게 작업을 여러 CPU에 스케줄 하는가?어떤 새로운 문제가 등장하는가?예전 기술을 적용할 것인가 아니면 새로운 아이디어가 필요한가📝13.1 배경 : 멸티 프로세스 구조멀티프로세서 스케줄링을 이해하기 위해 단일 CPU 하드웨어와 멀티 CPU 하드웨어의 근복적인 차이의 이해가 필요하다.하드웨어 캐시 사용 방식의 차이단윌 CPU 시스템에는 하드웨어 캐시 계측이 존재한다. 이 캐시는 프로그램을 빠르게 실행하기 위해 존재한다.캐시는 지역성(Locality)에 기반한다.시간 지역성(tempora..