Computer Science 58

[운영체제] 14. File System Implementation

File System Implementation파일 시스템 구현 (File System Implementation)사용자 관점에서의 파일 시스템 (File system of the user’s viewpoint)파일 시스템을 사용자에게 어떻게 보여줄 것인가?파일 시스템 인터페이스파일, 디렉토리, 속성 및 작업예: 트리 구조저장 관리 관점에서의 파일 시스템 (File system of the storage management viewpoint)논리적 파일 시스템을 저장 장치에 어떻게 매핑할 것인가?파일 시스템 구현레이아웃, 데이터 구조 및 알고리즘저장 내부를 이해하는 것이 필요함파일 시스템은 저장 장치를 블록의 시퀀스로 간주디스크와 메모리 간의 데이터 전송은 블록 단위로 이루어짐.각 블록에는 일반적으로 5..

[운영체제] 13. File System Interface

File System파일 시스템File system저장 장치에 데이터를 조직화하는 소프트웨어.User's viewpoint (사용자의 관점)Storage management's viewpoint (저장 관리의 관점)사용자의 관점에서의 파일 시스템File system interface (파일 시스템 인터페이스)How to show the file system to user? (사용자에게 파일 시스템을 표시하는 방법)파일, 디렉터리, 속성, 그리고 작업트리 구조저장 관리 관점에서의 파일 시스템File system implementation (파일 시스템 구현)How to map the logical file system to the storage device? (논리적 파일 시스템을 저장 장치에 매핑하는 방..

[운영체제] 12. I/O Systems

Modern I/O Systems다양한 종류의 I/O 장치가 있습니다CPU는 디바이스 컨트롤러(device controller)와 상호작용합니다.디바이스 컨트롤러는 읽고 쓸 수 있는 레지스터 세트를 포함합니다.Programmed I/OPort I/O특수 프로세서 명령어를 사용하여 데이터를 전송합니다.예: 인텔 아키텍처의 in/out 명령어각 장치는 다른 I/O 포트를 사용합니다. (포트 번호)Memory-mapped I/O디바이스 컨트롤러의 레지스터는 물리 주소 공간에 매핑됩니다.주소는 하드웨어 점퍼(hardware jumper) 또는 부팅 시 프로그래밍으로 설정됩니다.I/O는 로드 및 저장 명령어(load and store instructions)를 통해 수행됩니다.I/O 주소 공간이 시스템 메모리 주..

[운영체제] 11. Mass-Storage Structure

Hard Disk InternalsMoving head disk mechanism아래 내용은 참고 트랙(track): 디스크 표면에서의 원형 경로스핀들(spindle): 디스크를 회전시키는 중심축섹터(sector): 트랙을 나눈 작은 저장 단위실린더(cylinder): 동일한 위치의 모든 트랙표면(surface): 플래터의 저장 공간플래터(platter): 회전하는 디스크헤드(head): 데이터를 읽고 쓰는 장치회전(rotation): 디스크의 회전 운동Disk I/O service time디스크 I/O 서비스 시간: 탐색 시간 + 회전 지연 + 데이터 전송 시간탐색 시간(Seek time): 디스크 헤드를 원하는 트랙으로 이동하는 시간(위 아래 수직이동)탐색 시간 ≈ 탐색 거리회전 지연(Rotation..

[운영체제] 10. Virtual Memory

Virtual Memory ConceptsRestricted physical memory size물리적 메모리 크기의 제한물리적 메모리 공간보다 큰 프로그램은 실행될 수 없음.General program execution pattern일반적인 프로그램 실행 패턴프로그램의 일부만 실행되고 전체 프로그램은 실행되지 않음.오류 코드 및 예외 코드100x100 배열 중 10x10 요소만 사용됨.프로그램의 특정 옵션 및 기능이 드물게 사용됨.전체 프로그램이 필요할 때조차도 모든 부분이 동시에 필요하지 않을 수 있음.Virtual memory가상 메모리메모리에 완전히 들어가지 않은 프로세스의 실행을 허용.프로그램의 일부만 메모리에 있어도 실행 가능.논리적 메모리 주소 공간과 물리적 메모리 주소 공간의 분리.논리적 ..

[운영체제] 09. Main Memory

Multistep Processing of a User Program source program(test.c)가 compiler나 assembler에 의해 object module(test.o) 파일로 컴파일 됨(컴파일 시간)linker가 다른 object module과 linking 해줌loader가 모듈과 system library를 load함 (2, 3 과정을 load time이라고 함)loader에 의해 메모리에 올라온 프로세스가(실행시간에) dynamically loaded system library에서 불러온다.(Windows의 경우 프로세스에서 DLL 파일을 실행시킨 후 프로세스로 복귀함) Address binding프로그램 명령어와 데이터를 물리 메모리 주소에 연결하는 과정명령어나 데이터에..

[운영체제] 08. Deadlocks

What is Deadlock?세마포어 사용 예제두 개의 세마포어 S와 Q가 있고, 초기값은 1입니다.  Deadlock : 한 집합의 차단된 프로세스들이 각자 하나의 자원을 잡고 있으며, 동시에 다른 프로세스가 가지고 있는 자원을 얻기 위해 기다리고 있는 상태. Deadlock Characterization(데드락 특성)시스템 모델링 (System modeling)프로세스: P1, P2, ..., Pn.자원 유형(resource types): R1, R2, ..., RmCPU 사이클, 메모리 공간, I/O 장치, 파일 등.각 자원 유형 Ri는 Wi 인스턴스를 가짐.각 프로세스는 다음과 같이 자원을 이용합니다:요청 (request)사용 (use)해제 (release)Deadlock은 네 가지 조건이 동시..

[운영체제] 07. Synchronization Examples

Classical Problems of SynchoronizationBounded-Buffer ProblemReaders and Writers ProblemDining-Philosophers ProblemBounded-Buffer Problem원형 버퍼 문제한줄 요약 : 생산자와 소비자가 고정 크기의 버퍼를 안전하게 공유하며 오버플로우나 언더플로우를 방지하는 고전적인 동기화 문제버퍼의 개수가 N개 있다고 가정합니다.새 항목이 도착했습니다.비어 있는 버퍼가 있습니까? 채우십시오. 꽉 찬 버퍼를 만듭니다.그렇다면, 그러나...공유 변수(Shared variabe)를 지금 접근할 수 있습니까?소비자꽉 찬 버퍼가 존재합니까? 가져가십시오. 비어 있는 버퍼를 만듭니다.그렇다면, 그러나...공유 변수를 지금 접근할..

[운영체제] 06. Synchronization Tools

Race Condition: 공유 데이터에 대한 동시 접근은 data inconsistency(불일치)를 초래할 수 있다.Race condition여러 프로세스가 공유 데이터를 동시에 접근 및 조작할 때 발생하는 상황.race condition을 방지하기 위해서는, concurrent processes는 반드시 동기화되어야 한다.단일 프로세서 환경에서도 CPU scheduler에 의해 race condition이 발생할 수 있습니다.Critical Section ProblemCritical section(임계 구역)공유 데이터에 접근하는 코드 세그먼트.공유 데이터로 접근되는 코드 세그먼트를 말하는 듯Critical section problem한 프로세스가 critical section에서 실행 중일때, ..

[운영체제] 05. CPU Scheduling

CPU bursts and I/O bursts의 교대 시퀀스 Histogram of CPU burst timesCPU Scheduler실행 준비된 프로세스 중 하나를 선택한다CPU scheduling 결정은 다음과 같은 경우에 이루어진다(1) 프로세스가 실행 상태(running)에서 대기 상태(wating)로 전환될 때 (예: I/O 요청)(2) 프로세스가 실행 상태(running)에서 준비 상태(ready)로 전환될 때 (예: time slice expiration)(3) 프로세스가 대기 상태(wating)에서 준비 상태(ready)로 전환될 때 (예: I/O 완료)(4) 프로세스가 종료될 때(terminate)(1)과 (4) 상황에서의 스케줄링은 비선점형(non-preemptive, 수행 중간에 중단..