운영체제 요약 노트
2020. 12. 18. 20:22
🚦 Server/Operating System
개요 An operating system is a program acts as an intermediary between a (user/application) and ( hardware ) The operating system ( ) the system and ( ) applications. 대부분의 프로세서는 (general purpose processor ) 이다. 멀티 프로세서 시스템은 (parallel system) 이거나 (multicore system)이다. (폰노이만 아키텍쳐) : Stored-program computer model ( Asymmetric multiprocessing ) : Each processor is assigned a specific task. ( Symmetric ..
24. File System
2020. 6. 24. 14:46
🚦 Server/Operating System
파일의 내부에는 Identifier가 있어서 그걸로 구분한다. 만들고 지우고 읽고 하는 기능이 있다. 파일을 분류를 해놓아야 한다. 디렉토리 : 파일이나 디렉토리를 묶어 놓는 개념 운영체제 입장에서의 디렉토리는 좀 다르다. 이름을 파일에 identifier라던지 크기라던지 파일에 접근한 시간이라던지 데이터의 모양 이라고 함 디렉토리는 운영체제 입장에서 데이터 모양(Metadata)으로 매핑 시켜주는 역할을 한다. attribute를 보여준다. attribute중 하나가 identifier 루트 디렉토리 안에는 파일이 있고 File ID는 0번이 된다 spell
23. Page Replacement
2020. 6. 24. 11:24
🚦 Server/Operating System
컴퓨터가 메모리보다 디스크에 접근하는게 수만배 느리다. Page replacement의 목적은 page fault를 최소화 하는 것이다. OPT OPT : 모든 상황에서 어떤 Page replacement policy보다 낫다. 가장 Page Fault가 낮다. 4번에서 Page fault가 발생한다. 누구를 뽑아낼 것이냐? 가장 나중에 참조될 것 같은 애를 뽑아낸다. 3이 가장 나중에 참조될 것 같으니 3을 뺀다. Hit Ratio는 5/12 이고 Page Fault Ratio는 7/12 이다. Page Fault Ratio는 낮을수록 좋은 것 그러나 Belady Algorithm은 미래에 누가 참조될지를 알 때 가능하다. 실제 system에 적용하긴 힘들고 수학적은 minimum이 언제인지를 알 때 ..
22. VM Features
2020. 6. 23. 15:07
🚦 Server/Operating System
file-backed page는 굳이 swap에다가 안 써도 된다. stack이나 heap은 백업이 없으니까 받아놔야 한다. Process의 address space의 segment에 따라서 demand paging에서 처리해야하는 방식과 적용해야하는 방식이 다르다. Equal allocation : 프로세스마다 공평하게 allocation 해줄것이다. Proportional allocation Priority allocation Global vs Local Page Replacement victim을 뽑을 때 Global Replacement : 전체 페이지 중 안쓰는 애 Local Replacement : 너가 안쓰는 것 중에서 가져다 써라 Thrashing Working set을 다 커버하지 못해서..
21. Demand Paging and VM Features
2020. 6. 21. 15:43
🚦 Server/Operating System
프로세스들이 메모리를 쓰고 있었을 때, 메모리를 추가적으로 쓰고싶다면? Swapping을 쓴다. 스와핑 (Swapping) : 페이지 하나씩 backing store로 내보내는 page out과는 달리, 프로세스 전체를 backing store로 내보낸다. - 즉, Page out으로도 메모리 부족을 해결하지 못할 경우 프로세스를 선택하여 전체를 backing store로 내보낸다. "swap out" Backing store에 swap out (빼놓고)한다. 프로레스 2기가 짜리 하나를 swap out 시키면 시간이 오래걸린다. Demand Paging Demand Paging : Page 단위로 swapping 하는 것 내가 필요한 내용만 부르고 나머지는 디스크로 빼논다. 필요할 때 쓴다. 메모리 덜..
20. Page Tables
2020. 6. 20. 22:03
🚦 Server/Operating System
53 bit Address space 8 KB Page PTE는 8 byte 짜리 8 KB니까 뒤의 13 bit는 Offset 으로 사용한다. 8 KB = 13 bit 2^53 / 2^13 = 2^40 Linear Page Table을 만드려면 2^40 개의 PTE가 필요하다. 하나의 Page에 PTE가 몇 개까지 올 수 있냐에 따라서 비트가 쪼개진다. Page 하나의 크기 = 8 KB PTE 하나의 크기 = 8 byte Page 하나에 PTE가 몇개가 들어갈 수 있나? 8 KB / 8 byte = 1K 개 = 2^10개의 PTE = 10bit 2^40개의 PTE를 페이지로 나누려면 하나의 페이지에는 2^10개의 PTE를 가질 수 있으므로 2^40 / 2^10 = 2^30 개 아직 남음 계속 나눠주면 1..
19. Paging and Page Tables
2020. 6. 14. 17:17
🚦 Server/Operating System
★★★★★★★ Contiguous memory allocation Fixed partition : Internal fragmentation Variable partition : External fragmentation Segmentation : External fragmentation Paging Physical Address를 non-contiguous하게 쪼개는 것 고정된 사이즈로 잘리며, “Frame” 으로 불린다. Logical Address는 “Page” 로 쪼개진다. Page 사이즈가 클수록 Internal fragmentation이 날 가능성이 크다. Page Table OS 가 관리한다. MMU 가 Translate한다. Virtual address는 Page Table을 통해 Physic..
18. Address Spaces
2020. 6. 14. 11:37
🚦 Server/Operating System
★★★★★★★ Address Physical address / Logical address Absolute address / Relative address Physical Address 컴퓨터의 메인 메모리에 접근할 때 사용되는 주소 Logical Address 프로세스 관점에서 사용되는 주소 CPU에 의해 발생한다. Memory Management Unit (MMU) Logical Address 를 Physical Address로 translate 시킨다. 서로 다른 프로세스가 서로 같은 Logical Address를 쓸 수 있지만, MMU를 통해 서로 다른 Physical Address에 매핑되어있다. Fixed Partition : 고정되게 메모리 쪼개기 Physical Address = Base ..
17. Deadlock
2020. 6. 11. 21:26
🚦 Server/Operating System
Deadlock 2개 이상의 task들이 1개 이상의 resource를 요청하며, 서로 resource를 받기를 기다리고 있을 때 Deadlock이 발생한다. Deadlock 발생 조건 4가지 Mutual exclusion 두 개 이상의 task들이 서로 share 해서 쓸 수 없는 resource 여만 한다. (하나의 쓰레드가 어떤 자원을 사용하고 있다면, 다른 쓰레드는 요청을 하고 반납이 될 때까지 대기해야 함) Hold and wait 어떤 resource가 필요한데 acquire하는 도중에, 다른 resource가 필요하면 내가 가지고 있는 것은 든 상태로 기다린다. (쓰레드는 반드시 적어도 1개의 자원을 가지고 있어야 하며, 추가적인 자원을 얻기 위해서는 다른 쓰레드의 사용이 끝나길 대기해야 함..
16. Synchronization (3)
2020. 5. 26. 11:42
🚦 Server/Operating System
Producer Process(생산자 프로세스)는 정보를 생산하고, 그것을 Consumer Process에서는 소비하는 구조이다. 보통 생산자가 버퍼에 정보를 채워놓을 때, 버퍼의 크기가 무한대인 Unbounded Buffer를 이상적으로 생각한다. 버퍼의 크기가 한계가 없으니 생산자는 계속 정보를 넣을 수 있다. 하지만, 현실적으로 이런 것을 구현할 수 없으니 유한 버퍼 Bounded Buffer를 Circular array로 구현해서 Unbounded Buffer 흉내를 낸다. 이런 유한 버퍼에서는 1) 버퍼가 비어있으면 소비자는 waiting 해야하고 2) 버퍼가 꽉 차있으면 생산자는 waiting 해야 한다. Circular array로 구현하기 위해서 우리는 in과 out을 사용할 것이다. in..
15. Synchronization (2)
2020. 5. 26. 11:25
🚦 Server/Operating System
Mutex Lock (Mutual Exclusive Lock) Mutual Exclusive propoerty를 제공하는 Lock Spinlock 문고리를 계속 돌려보는 방법 장점 : context-switch가 일어나지 않는다. 단점 : 계속 돌려봄으로써 리소스를 계속 요구하므로 CPU 낭비가 심하다. block : aquire 한번만 해보고 점잖게 기다리는 것 Semaphore Shared data의 개수를 의미한다. S 변수 : 공유자원의 개수를 나타내는 변수 S값을 1로 주면 lock과 똑같다. Wait() : Shared data가 없으면 기다린다. Signal() : 나 다 썼으니 너 써! 라는 신호 Semaphore의 종류 Binary semaphore (= mutex) S값이 1인 경우 C..
14. Synchronization (1)
2020. 5. 18. 21:05
🚦 Server/Operating System
Quiz When threads can concurrently access and change shared variables, we say that part of code is a ( ) and it may lead to a ( ). To make the program run correctly, we need a mechanism to ( ) threads. A ( ) is one of such mechanisms. A correct implementation should provide ( ), ( ), and ( ) properties. Answer 더보기 critical section , race condition synchronized Lock, mutual exclusive, progressive..
Process VS Processor
2020. 5. 17. 11:02
🚦 Server/Operating System
프로세스와 프로세서의 차이 프로세서와 프로세스의 구별 프로세서와 프로세스는 엄연히 다른 존재입니다. Processor (프로세서)는 하드웨어적인 측면에서 "컴퓨터 내에서 프로그램을 수행하는 하드웨어 유닛"이다. 이는 중앙처리장치(Central Processing Unit)를 뜻하며 폰노이만 아키텍쳐에 의해 만들어졌다면 적어도 하나 이상의 ALU (Arithmetic Logic Unit)와 처리 레지스터(Register)를 내장하고 있어야 한다. 프로세서에 대한 정의입니다. 오래 전 혼자 공부했던 8008과 z80 같은 마이크로프로세서를 떠올리게 하는 정의입니다. 이런 정의를 충족하는 것에는 매우 여러종류의 프로세서들이 있습니다. 네트워크 장비(라우터, 스위치, IP공유기, 스위칭허브 등)에 포함되어 있는..
13. Process Scheduling (4)
2020. 5. 12. 16:05
🚦 Server/Operating System
Proportional Share Scheduling Real-time Systems Real-time CPU Scheduling Rate Monotonic Scheduling Earliest Deadline First Multiple-Processor Scheduling Processor Affinity Load Balancing Multicore Processors Algorithm Evaluation 큐마다 다른 비율로 각각의 프로세스를 나눠서 쓰는 것 time quantum을 주고 프로세스를 나눠줌 Lottery scheduling : 프로세스마다 티켓을 나눠준 개수에 비례해서 프로세스를 나눠줌 실행이 완료되어야할 dead line이 있는 프로세스 Real-time system은 task 처리에 ..
12. Process Scheduling (3)
2020. 5. 7. 21:23
🚦 Server/Operating System
지난 내용 Starvation : 모종의 이유로 인해 CPU를 할당하지 못하는 것 Preemtive Scheduling : 다른 프로세스를 처리하기 위해 CPU를 다른 프로세스에게 넘겨주는 것 FCFS (Fist-Come, First-Served) : 가장 먼저 온 프로세스부터 처리 SJF (Shortest Job First) : 가장 짧은 것부터 처리 SRTF (Shortest Remaining Time First) : SJF의 preemptive version Priority Scheduling 우선순위가 가장 높은 애들을 처리한다. Preemptive 가 될 수도 있고, Non-preemptive가 될 수도 있다. SJF : 프로세스의 실행시간이 가장 짧은 애부터 처리하는 것 여기에도 Priorit..
11. Process Scheduling (2)
2020. 5. 5. 21:05
🚦 Server/Operating System
Starvation : CPU가 바빠서 프로세스가 CPU를 할당받지 못하는 것 Preemptive Scheduling OS 가 현재 사용하고 있는 프로세스를 멈출 수 있다. Non-Preemptive Scheduling CPU를 사용하고 있는 프로세스가 자발적으로 CPU 사용을 해제함 멀티프로그래밍에서는 기본적으로 Preemptive Scheduling 사용 Batch System : 최대한 처리를 많이해야 하는 시스템, Throughput, CPU Utilization이 중요한 시스템 Interactive System : 성능이 아니라 Response time이 중요한 시스템 스케줄링 기준 높으면 좋은 것 CPU Utilization Throughput 낮으면 좋은 것 Turnaround time : ..