Chapter11 파일 시스템 1. Disk System Disk pack 비활발성 데이터 영구 저장 장치 구성 Sector : 데이터 저장/판독의 물리적 단위 Track : platter 한 면에서, 중심으로 부터 같은 거리에 있는 sector의 집합 Cylinder : 같은 반지름을 갖는 track의 집합 Platter : 양면에 자성 물질을 입힌 원형 금속판 Surface : platter의 윗면과 아랫면 Disk drive Disk pack에 데이터를 기록하거나 판독할 수 있도록 구성된 장치 구성 Head : 디스크 표면에 데이터를 기록 및 판독하는 장치 Arm : head를 고정하는 장치 Positioner : arm을 지탱하는 장치, head를 원하는 track으로 이동 Spindle : di..
운영체제
Chapter10 가상메모리 관리 1. Virtual Memory Management 가상 메모리 시스템의 성능을 최적화 하는 것 2. Cost Model 구성 요소 Page fault frequency : page fault 발생 빈도 Page fault rate : page fault 발생률 발생률과 발생 빈도를 최소화 시켜야 함. → context switch, kernel 개입을 최소화 Page reference string (d) 프로세스의 수행 중 참조한 페이지 번호 순서 $\omega = r_1r_2\cdots r_k\cdots r_T$ $r_i$ = 페이지 번호, $r_i\in {0,1,2,\cdots,N-1}$ N : 프로세스의 페이지 수 Page fault rate = F($\omega..
Chapter9 가상메모리 1. Vitrual Memory Non-continuous allocation 사용자 프로그램을 여러 개의 block으로 분할 실행 시, 필요한 block들만 메모리에 적재 나머지는 swap device(disk)에 존재 1.1 Address Mapping Continuous allocation인 경우 상대 주소 사용 → 프로그램의 시작 주소를 0으로 가정한 주소 메모리가 할당되면 할당된 주소에 따라서 상대 주소들을 조정함 Non-continuous allocation인 경우 가상(논리) 주소(Virtual address) 사용 → 연속된 메모리를 할당을 가정한 주소 address mapping을 통해서 가상 주소를 실제 주소(real address)로 매핑 함. 1.2 Blo..
Chapter8 메모리(주기억장치) 관리 1. 메모리 관련 용어 메모리 종류 계층구조 Block : 보조기억장치와 주기억장치 사이의 데이터 전송 단위(Size : 1 ~ 4KB) Word : 주기억장치와 레지스터 사이의 데이터 전송 단위(Size : 16 ~ 64bits) 1.1 Address Binding 프로그램의 논리 주소를 실제 메모리의 물리 주소로 매핑하는 작업 Binding 시점에 따라 구별 됨 Compile time binding 프로세스가 메모리에 적재될 위치를 컴파일러가 알 수 있는 경우(위치 변화 X) 프로그램 전체가 메모리에 올라감 Load time binding 컴파일 시점에서 메모리의 적재 위치를 모르면 상대 주소를 생성하여 적재 시점에 주소를 재설정 프로그램 전체가 메모리에 올라..
Chapter7 교착상태(Deadlock Resolution) 1. Deadlock의 개념 프로세스나 시스템이 발생 가능성이 없는 이벤트를 기다리는 상태 blocked/asleep state : 프로세스가 특정 이벤트나 자원을 기다리는 상태 1.1 Deadlock vs Starvation Deadlock : 자원이나 이벤트를 기다리는 상태 → but 가능성이 zero Starvation : CPU를 기다리는 상태 → 운이 없어서 순서가 계속 뒤로 밀림 1.2 자원의 분류 선점 가능 여부에 따른 분류 Preemptible resources : 선점 당한 후 ,돌아와도 문제가 발생하지 않음(뺏길 수 있음) ex) processor, memory Non-preemptible resources : 선점 당하면,..
Chapter6 프로세스 동기화 & 상호배제 1. 동기화(Synchronization)란? 다중 프로그래밍 시스템내에서 프로세스들은 서로 독립적인 동작을 하기 때문에, 공유 자원을 사용할 때 문제가 생김 → 동기화가 필요 동기화(Synchronization) : 프로세스들이 서로 동작을 맞추는 것 비동기적(Asynchronous) : 프로세스들이 서로에 대해 모름 병렬적(Concurrent) : 여러 개의 프로세스들이 동시에 시스템에 존재 1.1 용어 Shared data(공유 데이터, Critical data) : 공유 데이터 Critical Section(임계 영역) : 공유 데이터를 접근하는 코드 영역 Mutual Exclusion(상호 배제) : 둘 이상의 프로세스가 동시에 critical sec..
Chapter5 프로세스 스케줄링 1. 스케줄링이란? 여러 개의 프로세스가 시스템 내 존재하기 때문에 자원을 할당 할 프로세스를 선택하여, 자원을 효율적으로 이용해야 한다. → 스케줄링(Scheduling) 자원 관리 시간 분할(time sharing) 관리 - 하나의 자원을 여러 스레드들이 번갈아 가며 사용 ex) 프로세서 공간 분할(space sharing) 관리 - 하나의 자원을 분할하여 동시에 사용 ex) 메모리 1.1 스케줄링의 목적 시스템 성능 향상 성능 지표 응답시간(response time) → 대화형, 실시간 시스템에서 중요 작업 처리량(throughput) → 일괄처리(배치) 시스템에서 중요 자원 활용도(resource utilization) : 자원이 활용된 시간 / 주어진 시간 (최..
Chapter4. 스레드(Thread) 1. 스레드(Thread)의 개념 스레드란? 프로세스의 실행 단위 제어 요소를 가지고 있음(LWP : Light Weight Process) 자원을 공유(code, data, heap) 스레드와 프로세스의 차이 프로세스 : 운영체제로부터 주소 공간, 파일, 메모리 등을 할당받음 스레드 : 프로세스 안에 존재, 같은 프로세스에 속한 다른 스레드와 코드, 데이터 섹션, 그리고 열린 파일이나 신호와 같은 운영체제 자원들을 공유 1.1 스레드의 장점 사용자 응답성 : 일부 스레드의 처리가 지연되어도, 다른 스레드는 작업을 계속할 수 있다 자원 공유 : 효율성이 증가하고 커널의 개입이 감소됨 서로 다른 프로세스가 한 자원을 사용하려면 컨텍스트 스위칭이 자주 발생(커널 개입이..