sw사관학교정글/OS 개념정리 19

[week09] KOCW 운영체제(반효경교수님) - Memory Management 2

Memory Management 2 Paging paging 프로세스의 virtual memory를 동일한 사이즈의 page 단위로 나눔 virtual memory의 내용이 page 단위로 noncontiguous(불연속)하게 저장됨 일부는 backing storage에, 일부는 physical memory에 저장 Basic Method physical memory를 동일한 크기의 frame으로 나눔 logical memory를 동일 크기의 page로 나눔(frame과 같은 크기) 모든 가용 frame들을 관리 page table을 사용하여 logical address → physical address로 변환 External fragmentation 발생 안함, Internal fragmentation ..

[week09] KOCW 운영체제(반효경교수님) - Memory Management 1

Memory Management 1 Logical vs Physical address Logical address (=virtual address) 프로세스마다 독립적으로 가지는 주소공간 각 프로세스마다 0번지부터 시작 CPU가 보는 주소는 logical address이다. Physical address(DRAM) 메모리에 실제 올라가는 위치 Logical address와 Physical address는 어떻게 연결될까? A. 주소 바인딩을 통해서 어떤 프로그램이 물리적인 메모리 어디에 올라갈지 결정하는 것 Symbolic Address(변수 이름, 함수 이름) → Logical Address(숫자 주소) → Physical address(실제 주소) 주소 바인딩(address binding) logic..

[week08] KOCW 운영체제(반효경교수님) - Process Synchronization 2

Process Synchronization 2 Monitor 1 Semaphore의 문제점 정확성(correctness)의 입증이 어렵다. 한 번의 실수가 모든 시스템에 치명적 영향 P와 V 순서 잘못될때(왼쪽) P연산후 V를 안해줬을 때(오른쪽) monitor는 특별히 프로그래밍 언어 차원에서 Synchronization 문제를 해결하기 때문에 high-level synchronization construct라고 한다. 공유데이터를 접근하기 위해서는 내부의 procedure를 통해서만 접근가능하게 만듬 Monitor 2 프로그래머 입장에서는 뭐가 편할까? lock을 걸 필요가 없다. 기본적으로 monitor에 대한 동시접근을 허용하지 않는다. 나머지 프로세스는 기다려야 함(monitor가 자동으로 해결..

[week08] KOCW 운영체제(반효경교수님) - Process Synchronization 1

Process Synchronization 1 데이터의 접근 data가 있는 위치에서 읽어와서 연산을 수행하고 다시 그 위치에 연산결과를 저장한다. data를 읽기만 하면 문제가 없다. 하지만, data를 읽어서 수정을 하고 결과를 저장하는 방식에서는 누가 먼저 읽어갔는지에 따라 결과가 달라질 수 있다. Race Condition 여러 주체가 하나의 data를 동시에 접근하려고 할 때 race condition이 발생할 수 있다. → 조율해주는 방식이 필요하다. OS에서 race condition은 언제 발생하는가? 프로세스간에서는 자원을 공유하지 않기 때문에 보통 발생하지 않는다(User mode에서는 별로 안생김). Kernel 수행 중 인터럽트 발생 시 Process가 system call을 해서 ..

[week08] KOCW 운영체제(반효경교수님) - CPU Scheduling 2

CPU Scheduling 2 Multilevel Queue Ready queue를 여러 개로 분할 foreground(interactive) background(batch - no human interaction) 각 큐는 독립적인 스케줄링 알고리즘을 가짐 foreground - RR(Round Robin) background - FCFS 응답시간이 빠르다고 좋을게 없다. 어짜피 사람이랑 소통 x context switch overhead를 줄이기 위해 FCFS를 사용하는 것도 방법 큐에 대한 스케줄링 필요 Fixed priority scheduling serve all from foreground then from background starvation 가능성 존재 Time slice 각 큐에 CPU..

[week08] KOCW 운영체제(반효경교수님) - CPU Scheduling 1

CPU Scheduling 1 CPU and I/O Bursts in Program Execution CPU burst : CPU를 연속적으로 쓰는 단계 I/O burst : I/O를 실행하는 단계 CPU-burst Time의 분포 CPU는 실제로는 CPU bound job이 많이 사용하는데 그 빈도수가 적은 것이고, I/O bound job은 CPU를 짧게 쓰는데 빈도가 잦은 것이다. 여러 종류의 job(=process)이 섞여 있기 때문에 CPU 스케줄링이 필요하다. 사람과 소통하는 I/O bound job에 CPU를 우선적으로 준다. 프로세스의 특성 분류 프로세스는 그 특성에 따라 2가지로 나눈다. I/O bound process CPU를 잡고 계산하는 시간보다 I/O에 많은 시간이 필요한 job ..

[week08] KOCW 운영체제(반효경교수님) - Process Management

Process Management 프로세스 생성(Process Creation) 부모 프로세스(parent process)가 자식 프로세스(child process)를 생성 자식이 부모를 복제함 프로세스의 문맥을 모두 복제 자식은 그 공간에 새로운 프로그램을 올림 유닉스의 예시 fork() 라는 system call이 새로운 프로세스 생성 fork() 후에 exec()이라는 system call로 새로운 프로그램을 메모리에 올림 계층구조는 트리 형식이 됨 부모와 자식은 독립적으로 자원을 전혀 공유하지 않는다(일반적으로). advanced 된 내용으로 COW(copy-on-write)를 사용하면 공유할수도 있음 write가 발생할 때(내용이 바뀔 때) copy하겠다는 내용도 있음 수행 부모와 자식이 공존하..