본문 바로가기

Dev.Basic

(54)
[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가지..
[OS] 6-2. Process Synchronization II Chapter 6-2. Process Synchronization II Bounded - Buffer Problem버퍼의 크기가 유한한 환경에서 생산자와 소비자 사이에서 발생하는 문제를 말한다.생산자 프로세스, 소비자 프로세스 이 두 프로세스는 하나 씩만 존재하는 것이 아니라 여러 개씩 존재한다.생산자 프로세스의 역할은 데이터를 만들어서 공유 버퍼에 집어 넣는 역할을 하고소비자 프로세스는 그 반대로 버퍼에 있는 데이터를 꺼내가는 역할을 하게 된다. 이로 인해 어떤 문제들이 발생할 수 있을까?첫번째는 생산자 두 개가 하나의 버퍼에 동시에 데이터를 넣게 되는 경우이다.하나의 프로세스가 접근을 하게 되면 공유 버퍼에 lock을 걸게 될텐데,동시에 락을 걸게 되는 것인가? 의 문제이다.두번째는 소비자 프로세스 ..
[OS] 6-1. Process Synchronization I Chapter 6-1. Process Synchronization I Process Synchronization : 프로세스 동기화= Concurrency Control : 병행 제어 여러 주체(객체)가 하나의 데이터를 동시에 접근하려고 할 때를 Race Condition이라고 한다.데이터의 촤종 연산 결과는 그 데이터를 마지막에 다룬 프로세스에 따라 달라진다.동시에 접근했더라도 연산의 수행이 더 늦게 끝나는 프로세스의 결과값을 따르게 된다.즉,공유데이터(shared data)의 동시접근(consistency access)는 데이터의 불일치 문제를 발생시킬 수 있다는 이슈이다.그리고 우리는 이것을 조율해줘야 하는 문제가 발생한다.공유 메모리를 사용하는 프로세스 사이에서 발생할 수도 있고,커널 내부 데이터..
[OS] 5-2. CPU Scheduling II Chapter 5-2. CPU Scheduling II 앞서 살펴본 CPU Scheduling에 대한 구체적인 알고리즘을 살펴보겠다. FCFS(First Come First Served) 먼저 온 사람에게 먼저 제공한다는 뜻으로 먼저 할당 요청을 한 프로세스에게 CPU를 할당한다. 즉, 먼저 요청한 순서대로 처리하는 단순한 알고리즘이다. 비선점형 스케줄링이며 효율적이지 않다. 여기서 Nonpreemptive(비선점형)하다는 것은 일단 CPU를 할당받으면 자신의 작업을 모두 마치기 전까지, 즉 CPU burst가 완료되기 전까지 CPU를 반환하지 않는다는 의미이다. 문제점 convoy effect 발생 convoy effetct 란 소요시간이 긴 프로세스가 먼저 도달하여 시간을 잡아먹고 있는 부정적인 현상..
[OS] 5-1. CPU Scheduling I Chapter 5-1. CPU Scheduling I프로그램이 실행되면, 실행되면서 거치는 일련의 path가 존재한다.CPU가 일을 수행하고, I/O 작업 요청에 대한 응답을 기다리는 일을 반복한다.CPU가 일을 수행하는 시간을 CPU burst time 이라고 하고,I/O 요청에 대한 응답을 기다리는 시간을 I/O burst time 이라고 한다. CPU 스케줄링이란 무엇인가CPU 스케줄링이란 CPU입장에서 또는 프로세스 입장에서최고의 효율성을 보이며, 공평하게, CPU를 프로세스에게 분배하는 알고리즘, 방법을 의미한다. 스케줄링의 대상은 이미 Ready queue에 들어온 프로세스를 대상으로 진행된다. CPU 스케줄링이 필요한 이유프로그램마다 두 시간의 비율이 다르다.I/O 작업이 빈번한 작업(I/O..