본문 바로가기

Dev.Basic/운영체제

(26)
[OS] 9-2. Virtual Memory II Chapter 9-2. Virtual Memory IIReplacement Algorithm * 빨간색 숫자는 page fault를 의미한다.* 노란색 숫자는 Reference 가 일어날 때를 의미한다. 가장 먼 미래에 사용될 page를 알고 있다는 가정하에 구성된 알고리즘이다.(= Belady's optimal algorithm, MIN, OPT)가장 먼 미래에 사용될 page를 실제로 알 수 없으므로 실제로 시스템에서는 사용할 수 없다.실제 시스템에서 쓰이지는 않고 다른 알고리즘의 성능에 대한 upper bound를 제공한다.4번이 가장 오랜 후에 참조될 것을 미리 알고 4가 위치한 frame에 5를 내어준다. * 빨간색 숫자는 page fault를 의미한다.* 노란색 숫자는 Reference 가 일..
[OS] 9-1. Virtual Memory I Chapter 9-1. Virtual Memory IVirtual Memory물리적인 메모리에 프로세스를 적재하는데에는 운영체제가 관여하는 부분이 없었다.하지만 Virtual Memory 즉 가상 메모리에 대한 문제는 운영체제가 전적으로 관여한다.Virtual Memory는 Memory Management에서 다뤄진대로,메모리에 프로세스가 더이상 적재될 수 없을 때, Swapped out되는 메모리이다. Demand Paging 기법요청이 왔을 때, Page 단위로 메모리에 올리는 기법을 말한다.I/O 양이 감소되고, Memory 사용량이 감소되고, 빠른 응답시간을 보이고, 더 많은 사용자를 수용할 수 있게 된다.즉. 페이지 단위로 프로세스가 적재하는 상태이며,프로세스의 모든 페이지가 올라가 있지 않고 ..
[OS] 8-5. Memory Management V Chapter 8-5. Memory Management VSegmentation프로그램의 주소 공간을 의미있는 단위로 자르는 것을 말한다.process가 code, data, stack으로 나뉘는 부분을code segment, data segment, stack segment로 나눈다.물론 이것보다 더 작은 단위로 분할할 수도 있다.작게는 프로그램을 구성하는 함수 하나, 하나를 세그먼트로 지정할 수도 있고,크게는 프로그램 전체를 하나의 세그먼트로 정의할 수도 있다.Segmentation기법은 분할된 조각들의 크기가 균일하지 않기 때문에 연속할당 시 발생했던 문제들이 그대로 발생할 가능성이 있다. Segment에는 local address가 지정되는데,logical address는 으로 구성된다.이를 Se..
[OS] 8-4. Memory Management IV Chapter 8-4. Memory Management IV 현대의 컴퓨터에서 지원하는 프로그램들의 크기가 커졌다.address space가 커져서 그와 비례하여 page table들의 크기가 비약적으로 커지게 된다.프로그램마다, (프로세스 마다)이 따로 존재하는 page table들을 모두 메모리에 올리기에는 한계가 존재했다.올린다고 하더라도, 극히 일부분만 필요로 하기 때문에, 공간낭비를 초래하게 된다. 그래서 page table을 또 하나의 page로 인식하는 방식을 사용했다.마치, 서울시 안에 서대문구, 관악구, 강남구로 행정 구역을 나눠놓은 것 처럼페이지 안에 주소 체계를 한 단계 더 두는 것이다. Two Level Page Table (paging 기법)안쪽 페이지 테이블(inner page ..
[OS] 8-3. Memory Management III Chapter 8-3. Memory Management III Paging 기법 (불연속할당)(OS가 아닌 하드웨어에 의해 수행되는 내용이다.)물리적인 공간에 올려놓거나 backing store에 올려두거나 할 때 페이지 단위로 시행한다.프로그램을 구성하는 주소 공간을 같은 크기의 페이지라는 단위로 분할한다.그리고 Phygical memory를 page와 동일한 크기의 frame으로 나눈다.Paging 기법을 사용하면 hole들이 생기지 않는다.대신에, 불연속으로 할당하게 되면 주소 변환이 복잡해진다.각각의 페이지들이 물리적인 메모리 중 어느 부분에 올라갔는지 확인해야 하기 때문이다.그래서 Page 별로 주소 변환을 해줄 방법이 필요해졌고, page table을 생성했다.logical address가 t..
[OS] 8-2. Memory Management II Chapter 8-2. Memory Management II Allocation of Physical Memory메모리에는 OS가 상주하는 영역이 있고 그 나머지 메모리공간에 사용자 프로그램이 올라가게 된다.OS는 Interrupt vector와 함께 낮은 주소를 사용한다. 사용자 프로세스 영역 할당방법에는 두 가지로 나눌 수 있다.Contiguous allocation (연속 할당)각각의 프로세스가 메모리의 연속적인 공간에 적재되는 방법이다.고정 분할 방식가변 분할 방식두 가지 방식으로 나뉜다. Noncontiguous allocation (불연속 할당)하나의 프로세스가 메모리의 여러 영역에 분산되어 올라갈 수 있는 방법이다.PaingSegmentationPaged Segmentation세 가지 방식이..
[OS] 8-1. Memory Management I Chapter 8-1. Memory Management I 메모리란 주소를 통해 접근하는 객체로 Main Memory는 주기억장치를 의미한다.(따로 언급이 없으면 메모리가 Main memory를 의미한다.) 주소의 종류Logical Address(=virtual address)프로세스마다 독립적으로 갖는 공간으로 0번지부터 시작한다.이 주소는 CPU가 인식하는 주소 체계이다. Physical Address말 그대로, 물리적인 메모리 주소로 실제 하드웨어에 올라가는 위치를 뜻한다. Symbolic Address프로그래머들이 특정 이름을 통해 변수를 지정하고 값을 저장할 때,그 변수를 하드웨어의 몇 번지에 저장할 지 정하지 않는다.또한 그 변수를 CPU가 어떻게 인식할지도 정하지 않는다.그저 변수의 이름을 ..
[OS] 7. Deadlock Chapter 7. Deadlock 교착상태.일련의 프로세스들이 서로가 가진 자원을 요청하고 기다리며 blocked 된 상태를 말한다.자원(리소스)에 대한 개념을 다시 한 번 짚고 가자면,하드웨어와 소프트웨어 등을 포괄하는 개념이다.예를 들면, I/O space, CPU cycle, memory space, semaphore 등이 있다.그리고 프로세스가 자원을 사용하는 절차에는 Request, Allocate, Use, Release 단계가 존재한다. 즉, Deadlock 이란,프로세스 P1과 P2가P1(a); P2(b); // 각각 a,b라는 자원을 할당받은 상태에서P1(b) request, P2(a) request // b를 요청하고 a를 요청한 상태를 말한다. Deadlock이 형성되기 위한 4가지..