9. Virtual Memory 전체 program이 필요하지 않은 상황 : -handle unusual error -array, list, table은 실제로 필요한 것보다 많은 메모리를 차지한다. -특정 옵션과 feature of program -> 빈도수가 낮게 사용 memory에서 program의 일부만 수행할 수 있다면? -available한 physical memory에 사이즈에 대해서 영향을 받지 않는다. -더 많은 프로그램이 동시에 수행될 수 있다. -user program을 memory에 swap 하거나 load하는데 더 적은 I/O가 필요하다. Virtual memory : 프로그램의 일부만 메모리에 적재하고 실행한다. 실제 physical 메모리와 사용자의 logical 메모리 개념을..
8. Main Memory 각 프로세스는 독립된 메모리 -> 메모리 내 주소 : physical address -> 특정 프로세스가 가질 수 있는 legal address를 정하고, legal한 영역만 접근할 수 있도록 보호가 필요. base (relocatable) register : 가장 작은 legal address limit register : 주어진 legal 범위의 size. 이 두 register는 process 별로 가지고 있는 값이고 서로 겹치면 안 된다. basic hardware : base logical address) 프로그램이 실행되려면 memory로 와서 process가 되야 한다. -> user program은 실행되기 전 다양한 단계를 거친다. -> 주소는 이 step 별로..
7. Deadlocks process들이 한 resource를 동시에 사용할 수는 없으므로 waiting queue에서 기다림 -> starvation (run 불가) -> prevent sets of concurrent P resource는 memory space, CPU, file에 존재한다. 1. request (process -> resource) : 만약 바로 수락이 되지 않으면 될 때 까지 기다려야 한다. 2. use : resource를 process가 사용한다. 3. release : process가 resource를 다 사용했다. deadlock이 발생하는 네가지 상황 (4개 동시에 발생시 deadlock 일어날 수 있다.) 1. mutual exclusion : 최소 한 개의 resou..
6. Synchronization atomic 하다 = 명령어를 실행하는 도중에 interrupt가 발생하지 않는다. uniprocessor환경에선 shared variable 수정하는 동안 interrupt가 발생하지 않도록 규제하면 critical section 문제가 해결된다 그러나 multiprocessor 환경에는 적용이 불가능하다. 아래 3개를 이용한다. test_and_set(원래값) 원래값을 일단 리턴하고 그 값을 true로 고친다. compare_and_swap(원래, compare 값, new 값) 원래값을 일단 리턴하고 원래 인자와 비교값이 같으면 원래값을 새 값으로 고친다. swap(A,B) A와 B를 바꾼다. spinlock(=busy waiting) : 다른 Process가 cr..
4. Multithreaded Programming process내에 thread가 여러 개 있다. thread : basic unit of CPU utilization local variable은 stack에 register는 반드시 따로 저장한다. process creation엔 시간이 많이 들고, resource intensive하다. Multithreaded의 장점 -responsiveness -resource sharing -economy -scalability parallelism : 한 task 이상을 system이 동시에 진행 가능하다. concurrency : support more than one task by allowing all the task to make progress. Am..
3. Process Concepts program이 GUI의 클릭으로 시작되면 process로 전환된다. job scheduler는 process의 양 (degree of multiprogramming) CPU scheduler는 ready 상태의 process 중 어떤 걸 실행할지 결정한다. PCB : process control block, task control block, state, number, PC, register, memory, list of open files. process 중단 후 다른 process로 이동할 때 context switching 발생. -> pure overhead (어쩔 수 없다.) I/O bound process는 many short CPU burst CPU bo..
2. System Structures OS의 서비스 중 user에게 도움이 되는 것 user interface(CLI_kernel, shell, GUI, batch) program execution : 프로그램을 메모리로 가져오고 실행시킨다. I/O operation : running program이 요구할 수 있다. file-system manipulation communication : shared memory or message passing. error detection resource share를 통한 효율적 동작의 보장 resource allocation : 동시 접속시 accounting : 어떤 유저가 무엇을 얼마나 사용하였는지 protection and security API를 syste..
안녕하세요. 이번엔 Operating System에 대해서 포스팅을 하려고 합니다. 개인적으로 저번 학기에 굉장히 재미있게 들었던 강의입니다. 컴퓨터 구조 과목을 선수강하고 그 후에 듣게 되었는데 생각보다 너무 재미있더라고요. 오늘은 시험을 위해 정리해두었던 자료를 올리고, 다음에 세세하게 포스팅하도록 하겠습니다. 사용한 교과서는 Operating System Concepts 9th edition입니다. 1. Introduction 컴퓨터 시스템 : 하드웨어, 운영체제, 사용자, 응용 프로그램 운영체제 : 자원 할당, 실행 제어, 커널 bootstrap program : 전원이 켜지거나 재부트시 실행되는 초기 프로그램, ROM, EEFROM에 저장된다. 펌웨워이다. 모든 사항을 초기화하고 커널을 찾아 메..