
I/O System and Disk Management★ OverviewI/O MechanismsHow to send data between processor and I/O deviceI/O Services of OSOS Supports for better I/O performanceDisk SchedulingImprove throughput of a diskRAID ArchitectureImprove the performance and reliablity of disk system★ I/O System (HW) ★ I/O MechanismsProcessor controlled memory accessPooling (Programmed IO)Interrupt★ Pooling (Programmed I/O)..

Disk System★ Disk SystemDisk pack데이터 영구 저장 장치 (비휘발성)구성sector데이터 저장/판독의 물리적 단위TrackPlatter 한 면에서 중심으로 같은 거리에 있는 sector들의 집합Cylinder같은 반지름을 갖는 track의 집합Platter양면에 자성 물질을 입힌 원형 금속판데이터의 기록/판독이 가능한 기록매체SurfacePlatter의 윗면과 아랫면 Disk driveDisk pack에 데이터를 기록하거나 판독할 수 있도록 구성된 장치구성Head디스크 표면에 데이터를 기록/판독ArmHead를 고정/지탱Positioner (boom)Arm을 지탱Head를 원하는 track으로 이동SpindleDisk pack을 고정 (회전축)분당 회전 수 (RPM, Revolut..

Virtual Memory Management (1/6) - Cost model, HW components★ Virtual Memory Management가상 메모리 (기억장치)Non-continuous allocation사용자 프로그램을 block으로 분할하여 적재/실행Paging/Segmentation system가상메모리 관리의 목적가상 메모리 시스템 성능 최적화Cost model다양한 최적화 기법★ Cost model for Virtual Mem. Sys.Page fault frequency (발생 빈도)Page fault rate (발생률) Page fault rate를 최소화할 수 있도록 전략들을 설계해야 함Context switch 및 kernel 개입을 최소화시스템 성능 향상Page ref..

Virtual Memory (1/5) - Non-continuous allocation★ Virtual Storage (Memory)Non-continuous allocation사용자 프로그램을 여러 개의 block으로 분할실행 시, 필요한 block들만 메모리에 적재나머지 block들은 swap device(disk)에 존재기법들Paging systemSegmentation systemHybrid paging/segmentation system★ Address MappingContinuous allocationRelative address (상대 주소)프로그램의 시작 주소를 0으로 가정한 주소Relocation (재배치)메모리 할당 후, 할당된 주소(allocation address)에 따라 상대 주소..

메모리 (주기억장치) 관리 (1/3) - Backgrounds★ 메모리(기억장치)의 종류 ★ 메모리(기억장치) 계층구조 Block보조기억장치와 주기억장치 사이의 데이터 전송 단위Size : 1 ~ 4KBWord주기억장치와 레지스터 사이의 데이터 전송 단위Size : 16 ~ 64 bits★ Address Binding프로그램의 논리 주소를 실제 메모리의 물리주소로 매핑(mapping)하는 작업Binding 시점에 따른 구분Compile time bindingLoad time bindingRun time binding User Program Processing StepsComplie time binding프로세스가 메모리에 적재될 위치를 컴파일러가 알 수 있는 경우위치가 변하지 않음프로그램 전체가 메모리에..

교착 상태 (Deadlcok Resolution)★ Deadlock의 개념Blocked/Asleeped state프로세스가 특정 이벤트를 기다리는 상태프로세스가 필요한 자원을 기다리는 상태Deadlock state프로세스가 발생 가능성이 없는 이벤트를 기다리는 경우프로세스가 deadlock 상태에 있음시스템 내에 deadlock에 빠진 프로세스가 있는 경우시스템이 deadlock 상태에 있음Deadlock vs Starvation★ 자원의 분류일반적 분류Hardware resources vs Software resources다른 분류 법선점 가능 여부에 따른 분류할당 단위에 따른 분류동시 사용 가능 여부에 따른 분류재사용 가능 여부에 따른 분류★ 선점 가능 여부에 따른 분류Preemptible resou..

프로세스 동기화 동기화 ★ 다중 프로그래밍 시스템 여러 개의 프로세스들이 존재 프로세스들은 서로 독립적으로 동작 공유 자원 또는 데이터가 있을 때, 문제 발생 가능 ★ 동기화 프로세스들이 서로 동작을 맞추는 것 프로세스들이 서로 정보를 공유하는 것 Asynchronous and Concurrent P’s ★ 비동기적 프로세스들이 서로에 대해 모름 ★ 병행적 여러 개의 프로세스들이 동시에 시스템에 존재 ★ 병행 수행중인 비동기적 프로세스들이 공유 자원에 동시 접근 할 때 문제가 발생할 수 있음 Terminologies ★ Shared data (공유 데이터) or Critical Data 여러 프로세스들이 공유하는 데이터 ★ Critical section (임계 영역) 공유 데이터를 접근하는 코드 영역(c..

프로세스 스케줄링 다중 프로그래밍 (Multi-programming) ★ 여러 개의 프로세스가 시스템 내 존재 ★ 자원을 할당할 프로세스를 선택해야 함 스케줄링(Scheduling) ★ 자원 관리 시간 분할 (time sharing) 관리 ✓ 하나의 자원을 여러 스레드들이 번갈아 가며 사용 ✓ 예) 프로세서 (Processor) ✓ 프로세스 스케줄링 (Process scheduling) ✓ 프로세서 사용시간을 프로세스들에게 분배 공간 분할 (space sharing) 관리 ✓ 하나의 자원을 분할하여 동시에 사용 ✓ 예) 메모리 (memory) 스케줄링의 목적 ★ 시스템의 성능(performance) 향상 ★ 대표적 시스템 성능 지표 (index) 응답시간 (response time) → interacti..