운영체제(OS)
-
File System운영체제(OS) 2022. 12. 15. 17:20
What is File System? 우리가 평소 사용하는 application은 process address space에 data를 저장할 수 있습니다. 이것이 과연 충분할까??? data의 크기는 virtual address space에 제한받고, data는 application이 사라질 때 잃게 되고, 다수의 process들은 똑같은 data에 access하기를 원할지도 모릅니다. 이를 위해 영구적인 정보들을 위한 몇가지 기준이 생겼습니다. 먼저 매우 큰 정보들을 저장할 수 있어야 합니다. 두번째로 정보는 process가 사용하는 동안 무조건 살아있어야 합니다. 세번째로 여러 process에 동시에 access할 수 있어야 합니다. 이를 해결할 수 있는 것이 File입니다. File은 논리적인 저장..
-
Chapter 10 (Virtual Memory)운영체제(OS) 2022. 12. 10. 17:35
Motivation of Virtual Memory 프로그램을 실행하려면 메모리에 있어야 하지만, 프로그램 전체가 사용되지는 않습니다. 프로그램의 일부분만 메모리에 있어 실행되면 많은 이점을 가져올 수 있습니다. 가상 메모리란 물리 메모리로 부터 사용자 logical(가상) 메모리 분리 입니다. 즉, process 전체가 메모리에 올라오지 않더라도 실행이 가능하도록 하는 기법입니다. (= 프로그램이 실행되는데 최소한 얼만큼의 메모리가 필요한지에 집중) 나머지는 보조기억 장치, 즉 디스크에 저장되있습니다. 주요 장점 중 하나는 사용자 프로그램이 물리 메모리 보다 커져도 된다는 것입니다. 따라서 개발자들은 더이상 물리 메모리 크기에 국한받지 않고 개발할 수 있습니다. Virtual Memory > Physi..
-
Chapter 9 (Main Memory)운영체제(OS) 2022. 11. 21. 16:52
Background Program Execution 프로그램을 실행하려면 메모리를 가져와야 합니다. user program은 실행되기 전에 몇 가지 단계를 진행됩니다. 1. Instruction fetch from memory (메모리로 부터 명령어 가져오기) 2. Instruction decode (명령어 해석) 3. Operand fetch (피연산자 가져오기) 4. Instruction execute (프로그램 실행) 5. Results may be stored back in memory (결과물 메모리에 저장) Memory Access Speed processor에 내장된 main memory와 register는 CPU가 직접 access할 수 있는 유일한 저장소 입니다. 따라서 실행되는 명령들과..
-
Chapter 5 (CPU Scheduling)운영체제(OS) 2022. 10. 26. 03:55
Basic Concepts CPU의 효율을 높이기 위해 우리는 multiprogramming을 사용합니다. 그러나 CPU가 1개이면 오직 1개의 process만 작동할 수 있습니다. 이는 CPU scheduling이 필요합니다. process는 CPU burst와 I/O burst를 왔다갔다 하면서 프로그램을 실행합니다. CPU burst는 cpu 명령을 실행하는 것이고 I/O burst는 i/o를 요청한 다음 기다리는 시간입니다. process는 CPU bound process와 I/O bound process 로 나눌 수 있습니다. CPU burst가 큰 process가 CPU bound process I/O burst가 큰 process를 I/O bound process 라고 합니다. 우리가 대부분..
-
Chapter 6 - 7 (Synchronization Tools and Examples)운영체제(OS) 2022. 10. 22. 21:41
여러 process들은 동시에 실행될 경우 서로의 공유 데이터에 접근할 수 있으므로, 동기화가 꼭 필요합니다. Possibility of Interleaving process 끼리 동기화를 제대로 안해주면 interleaving 현상이 발생합니다. 예를 들어 counter 변수를 늘리는 producer와 줄이는 consumer process가 있다고 가정하면 counter ++ 와 counter -- 는 위에 보듯이 다음과 같은 기계어로 실행됩니다. 이를 동시에 실행하면 interleaving 이 발생할 수 있습니다. interleaving 현상은 producer와 consumer가 누가 먼저 실행되는가에 달렸습니다. 예를 들어 counter = 5라고 가정 먼저 producer에서 counter을 +1..
-
Chapter 4 (Thread and Concurrency)운영체제(OS) 2022. 10. 19. 22:34
What is Thread ? thread는 process의 작업 흐름을 말합니다. 하나의 process가 하나의 작업만 하는 것을 single thread 라고 하며, 하나의 process가 동시에 여러 작업을 수행하는 것은 multi thread라고 합니다. 각 개인의 thread는 최소 자신만의 register를 갖고, stack을 소유할 수 있습니다. multi thread는 한 process의 code, address space 그리고 여러 resource들을 공유합니다. 그냥 단순히 process를 여러개 돌리면 되는데 우리는 보통 multi thread 방식을 선호합니다. process 끼리 통신하는 IPC 방식은 많은 overhead와 성능을 저하 시킵니다. 비록 thread 전환에도 co..
-
Chapter 3 (Processes)운영체제(OS) 2022. 10. 11. 22:38
What is a Process? 우리는 보통 디스크에 있는 것을 프로그램이라 하고 이 프로그램이 메모리에 load 되면 process 라고 합니다. 여기서 process는 job, task 모두 동일하게 사용하겠습니다. 프로세스는 code(=text), data, stack, heap 과 program counter를 포함합니다. Process State new : 프로세스가 처음에 생성되었을 때 ready : 프로세스가 CPU에 할당되기를 기다릴 때 running : 프로세스가 할당되어 실행될 때 waiting : 프로세스가 event를 기다릴 때 terminated : 프로세스가 실행을 끝냈을 때 Process Control Block (PCB) 각각의 process는 자신의 정보 묶음 block인..
-
Chapter 1(Introduction) & 2(System Structures)운영체제(OS) 2022. 10. 10. 01:35
운영체제 란?? user computer 와 computer hardware 를 매개하는 프로그램입니다. 운영체제의 역할은 크게 2가지로 나뉘는데 사용자 관점(User View) 와 시스템 관점 (System View)로 나뉠 수 있습니다. User View 사용자가 컴퓨터를 쉽게 이해하고 또한 컴퓨터의 자원 사용(Resource utilization)을 신경쓰지 않게 도웁니다. 즉, 사용자에게 편의를 제공해줍니다. System View 시스템 관점에서 운영체제를 보면 자원 할당자(Resource Allocator) 입니다. 자원을 사용하는데 발생되는 충돌(conflict)을 효율적이고 공평하게 배분합니다. 또한 운영체제는 컴퓨터 자원들을 관리하는 제어 프로그램(Control Program)으로서 동작합..