목록Computer Science (58)
엔지니어가 되고 싶은 공돌이
16. 3 Directories - 정의: speical metadata가 포함된 파일. - 목표: 파일을 체계적으로 정리하는 방법을 제공, 편리한 이름 인터페이스를 제공. - hierarchical directory system 1) 다중 레벨 디렉토리를 지원한다. 2) current directory(or working directory)를 지원한다. 3) relative names(path): 상대경로, 현재 있는 디렉토리에서부터의 경로. 4) absolute names(path): 절대경로, 루트에서부터의 경로. - directory = list of (file name, file attributes) - 일반적으로 순서가 정의되어 있지 않다.(effectively random) - open ("..
16. File System 16. 1 Basic Concepts(5) - 장기 정보 저장 요구사항: 매우 많은양의 정보 저장, 프로세스 종료시 생존, 여러 프로세스가 동시에 정보에 액세스 - File System: secondary storage(file)에 대한 추상화를 구현. 즉, 논리적으로 파일을 구성하고, 데이터 공유와 보호가 효율적으로 되도록 하는 것. - File: 보조기억장치에 기록된 정보들의 모음. 비휘발성, OS는 논리적 뷰를 제공. - File Structures 1) Flat: byte sequence 2) Structured: fixed length records, variable length records - Logical View Opeartions: Identify(): re..
15. 4 disk scheduling - 여러 개의 작업이 들어올 때 어떤 순서로 읽어야 효율적일까? - seek는 비용이 많이 들기 때문에. - 디스크가 이미 작업중인데 새로운 작업이 들어오면 disk queue에서 기다리게 된다. 1) FCFS: 요청이 오는 순서대로 처리. - load가 적은 경우 합리적, 긴 request queue에 대해서 long waiting time 2) SSTF(시간적으로 제일 좋은 방법): seek time을 최소화. 가장 가까운 녀석부터 처리. - starvation이 발생할 수 있다. 3) SCAN: elevator algorithm, 한 방향으로 쭈욱 그 다음 역 방향으로 쭈욱 - wait time이 비균일(non-uniformly)하다. 4) C-SCAN: SC..
14. 7 I/O Software Layers - device independence: device마다 코드가 달리지지 않으면 좋겠다. - uniform naming - error handling - 정의: 각 I/O device를 control하는 장치별 코드. - device-independent I/O software와 interrupt handler 사이에서 interacting - 아주 잘 정의된 device format이 있다. - device drivers 구현 1. 커널과 정적으로 연결. 2. 부팅 시 선택적으로 시스템에 로드. 3. 실행 중 시스템에 동적으로 로드. - 운영체제가 망가지는 건 거의 대부분 device driver 때문에 발생한다. 드라이버는 windows XP 충돌의 85..
14. 4 Device Characteristics - Polling vs Interrupt - I/O요청이 처리되었다는 걸 CPU가 어떻게 알 수 있을까? - CPU가 polls을 요청해서 주기적으로 I/O에게 물어본다. - 장점: 구현하기 쉽고, 소프트웨어를 쉽게 제어할 수 있다. - 단점: CPU를 너무 많이 쓰게되고, 낮은 우선순위의 디바이스는 실행 되지 못할 수 있다. - I/O가 끝나면 interrupt를 CPU에게 보낸다. - interrupt는 여러 device가 공유한다. - 장점: CPU는 필요할 때만 장치를 처리할 수 있고, 일반적으로 Polling보다 효율적. - 단점: 과도한 인터럽트는 오히려 실행을 방해. 전송된 바이트당 1개 인터럽트가 필요할수도 14. 5 Device Char..
13. 4 Advanced VM Functionality - Virtual Memory Tricks 1) Shared Memory 2) Copy on Write 3) Memory-mapped Files ex) Web Server - private virtual address space는 애플리케이션을 보호하므로, 데이터 공유가 어렵다. - shared memory를 사용하여, 프로세스가 direct memory reference를 통해 데이터를 공유할 수 있다. implementation: page table을 사용하여 공유 메모리를 어떻게 구현할 수 있는가? - answer: 두 테이블의 PTE가 동일한 physical frame에 매핑되도록 한다. 각 PTE는 서로다른 protection values..
13. 2 Allocation of Frames & Thrashing - 다중 프로그래밍 시스템에서 물리적 메모리를 경쟁 프로세스에 할당하는 방법이 필요. - 2가지 방법이 존재하며, 뭐가 더 좋다고 할 수 는 없다. 1) fixed space algorithms: 각 프로세스에는 사용할 수 있는 페이지 제한이 있다. - Local Replacement: 일부 프로세스는 잘 될 수 있고, 다른 프로세스는 어려울 수 있음. 2) variable space algorithms: 프로세스의 공간이 동적으로 확장되고 축소됨. - Global Replacement:한 프로세스가 나머지 프로세스를 망칠 수 있다.(Linux) = overcommitted - 과도한 page fault에 의해 page replacem..