본문 바로가기

운영체제

Segmentation and Paging - (2) Paging Segmentation and Paging - (2) PagingPaging - Logical memory, Physical memory를 동일한 memory block 크기로 나눈다. - 동일한 크기의 logical memory단위를 page, physical memory단위를 frame이라 한다. - 그 이후에 MMU가 Page Table을 참조하여 virtual address를 physical address로 메모리를 변환한다.(memory translation)Paging은 Segmentation기법과 마찬가지로 main memory에 page table을 구성하고 MMU가 이를 참조함으로써 가상 주소(virtual address)를 물리 주소(physical address)로 변환한다. 예를들어..
Segmentation and Paging - (1) Segmentation Segmentation and Paging - (1) Segmentation컴파일(Compile), 링킹(Liking)과정을 거쳐 만들어진 .exe파일은 1)Text Section, 2)Data Section, 3)ZI(=BSS) Section을 갖는다.이렇게 만들어진 .exe파일을 운영체제의 로더가 메인 메모리(main memory)로 로드하게 되면 다음과 같은 Segment 구조를 갖는다Text(=Code) Segment(Read Only)Data Segment(Read and Write)Stack SegmentHeap Segment각 Segment는 각기 다른 특성을 갖는다. Q. 이렇게 하나의 프로세스를 각기 다른 영역(Segment)로 나누어 관리하는 이유는 무엇일까?(= 한 User Proce..
운영체제 - Dynamic Storage Allocation(Stack, Heap) 운영체제 - Dynamic Storage Allocation(Stack, Heap) static allocation?- 프로그램이 수행되기 전(컴파일 타임)에 미리 메모리를 할당하는 것, static allocation- Text(Code) segment, Data segment dynamic allocation- Stack segment, Heap segment Static Allocation의 특징- 변수의 life cycle이 프로그램의 시작과 종료와 일치 Q. 왜 dynamic allocation이 필요할까?- 얼마만큼의 메모리 크기가 필요할 지 예측할 수 없기 때문 # Activation Record(= stack frames, activation frames)- procedure가 수행되기 위..
운영체제 - 컴파일러(compiler), 링커(linker) 운영체제 - 컴파일러(compiler), 링커(linker) 컴파일러는 .c 파일을 각각 컴파일(compile)하여 오브젝트 파일(.o)를 만든다.링커는 오브젝트 파일(.o)을 한데 묶어 .exe파일을 만든다.만들어진 .exe를 실행시키면 운영체제의 로더(loader)에 의해 메모리에 적재된다. 각각의 오브젝트 파일(.o)은 프로그램의 데이터의 특징에 따라 각각의 section으로 구분된다.Text section- 프로그램의 코드가 저장된다.Data section- 프로그램의 초기화된 전역 변수가 저장된다.ZI(=BSS) section- 프로그램의 초기화되지 않은 전역 변수가 저장된다.Symbol Table- 프로그램에서 사용하는 symbol들에 대한 정보를 저장하는 자료구조Relocation Table..
운영체제 - 데드락(Dead Lock) 운영체제 - 데드락(Dead Lock) Definition1. Dead Lock- 자원을 공유하는 프로세스들이 서로가 원하는 자원을 분점하고 있기 때문에 프로세스가 더 진행하지 못하는 현상.- CPU 낭비는 없음 2. Live Lock- 자원을 계속적으로 사용하지만 아무런 생산적인 일을 하지 못하는 상황- 예를들어, 라우터에 지나치게 많은 패킷(packet)이 도착하여 큐(queue)가 꽉 차 기존의 old packet를 지속적으로 버리게 되는 상황- 혹은 지나치게 많은 interrupt request로 인한 실질적인 job이 수행될 수 없는 상황* Interrupt Coalescing- Interrupt 발생 빈도를 줄이기 위해서, 여러 번의 입력을 모아서 한번에 interrupt를 발생시키거나 일정 ..
운영체제 - CPU 스케쥴링(3) 운영체제 - CPU 스케쥴링(3) - CPU 스케쥴링은 CPU Burst 단위로 일어난다.앞서, CPU 스케쥴링 기법으로 ①FIFO, ②SJF, ③Round Robin을 알아보았다.SJF(Shortest Job First)는 가장 이상적인 스케쥴링 기법이지만 운영체제가 각 프로세스의 CPU Burst size를 예측할 수 없기 떄문에 불가능한 기법이라고 하였다.그에따라 FIFO를 대체할 기법으로 Round Robin이 등장하였는데 항상 Round Robin이 FIFO보다 성능이 우수할까? 예를들어, 100 time을 요구하는 process 10개가 Ready Queue에 있다고 가정해보자.Response time을 각 스케쥴링 기법에 대해 측정해보면FIFO의 평균 Response time : (100+2..
운영체제 - CPU 스케쥴링(2) 운영체제 - CPU 스케쥴링(2) Scheduling은 Policy + Mechanism이다. Scheduling Policy Q. Scheduling policy가 컴퓨터 시스템의 성능에 어떤 영향을 미칠까?( P : process, C : cpu time )P1 : C1 = 10, P2 : C2 = 100 P1 > P2W(p1) = 0, W(p2) = 10, Wavg = 5P2 > P1W(p1) = 100, W(p2) = 0, Wavg = 50즉, Ready Queue에 있는 프로세스 중 무엇을 먼저 수행하느냐에 따라 컴퓨터 시스템의 성능에 차이가 있다. 컴퓨터 시스템의 성능을 나타내는 지표에는 무엇이 있을까? 컴퓨터 시스템 성능평가 척도Throughput : 단위시간당 수행완료되는 프로세스의 수Tu..
운영체제 - CPU 스케쥴링(1) 운영체제 - CPU 스케쥴링(1) CPU 스케쥴링이란?어떤 프로세스에게 CPU를 할당할 것인가?CPU를 할당받은 프로세스에게 얼마만큼의 CPU Time을 제공할 것인가?이 두가지에 대한 고민이 CPU 스케쥴링(scheduling)이다. 1. preemptible resource- 한 프로세스가 점유한 상태에서 다른 프로세스에게 양보할 수 있는 자원.ex. CPU, main memory(swapping) 2. non-preemptible resource- 한 프로세스가 점유하면 사용을 마칠 때까지 다른 프로세스에게 양보할 수 없는 자원ex. 프린터(Printer) CPU 스케쥴링을 지원하기 위해 CPU Burst라는 단위를 만들었다. # CPU Burst- 프로그램의 수행 중에 연속적으로 CPU를 사용하는..