본문 바로가기

OS(운영체제)26

파일 시스템 내부구조 (File System Internal) 1. 파일 시스템의 구성 컴퓨터는 다수의 저장 장치를 유지 저장 장치는 볼륨을 담고 있는 파티션으로 구분 각 볼륨은 파일 시스템으로 정형화된다. 다수의 파일 시스템을 가질 수도 있고 종류가 서로 다를 수도 있다. 2. 파일 시스템 마운팅 (File System Mounting) OS는 디바이스 이름과 마운트 포인트(mount point)를 전달받아 해당 디바이스를 주어진 포인트에 마운트 한다. 마운트 과정에서 OS는 디바이스가 유효한 파일 시스템을 포함하는지 검증한다. * 마운트 Example 그림 a : 파일 시스템의 기존 상태 그림 b : 마운트 되지 않은 파티션 그림 (b)의 파티션이 마운트 포인트 /users에 마운트 된 경우 3. 파티션과 마운팅 (Partitions and Mounting) 파.. 2021. 12. 10.
파일 시스템 구현 (File System Implementation) 1. 파일 시스템 구현 (File System Implementation) (1) 디스크 상의 파일 시스템 구조 부트 제어 블록 (Boot control block) 시스템이 운영체제를 그 파티션으로부터 부트 시키는데 필요한 정보를 저장 볼륨 제어 블록 (Volume control block) 볼륨(또는 파티션)의 블록 수, 블록의 크기, 가용 블록의 수와 포인터, 그리고 가용 FCB 수와 포인터와 같은 파티션 정보를 저장 디렉터리 구조는 파일을 조직화하는데 사용 파일별 FCB는 자세한 파일 정보를 저장 (2) File Control Block , FCB 응용 프로그램은 논리 파일 시스템을 통해 새로운 파일을 생성 새로운 FCB를 할당하고, 해당 디렉터리를 메모리로 읽어, 새로운 파일 이름과 FCB로 디.. 2021. 12. 10.
파일 시스템 인터페이스 (File System Interface) 1. 파일 속성 (File Attributes) 파일은 운영체제마다 다른 속성을 가질 수 있다. 일반적 속성 이름, 식별자, 타입, 위치, 크기, 보호, 시간, 날짜, 사용자 식별 2. 파일 연산 (File Operations) 파일 생성 (Create) 파일이 저장될 수 있도록 파일 시스템 내 공간을 찾아 할당 새로 생성된 파일에 대한 항목이 디렉터리에 만들어진다. 파일 열기 (Open) 모든 연산 전에 open을 수행 파일 쓰기 (Write) 주어진 버퍼의 내용을 파일 포인터가 가리키는 위치에 쓴다 파일 읽기 (Read) 파일 포인터가 가리키는 위치의 내용을 버퍼에 읽는다 파일 내 위치 재설정 (Reposition) 파일 포인터가 가리키는 위치를 변경한다 파일 삭제 (Delete) 해당 파일이 차지한.. 2021. 12. 10.
교착상태 처리 방법 (Methods for Handling Deadlocks) * 교착상태 처리 방법 분류 교착상태가 절대 생기지 않도록 보장 교착상태 예방 (Deadlock prevention) 교착상태 회피 (Deadlock avoidance) 교착상태가 되도록 허용, 다음에 복구 교착상태 탐지 (Deadlock Detection) 교착상태 회복 (Deadlock Recovery) 교착상태 무시 1. 교착상태 예방 (Deadlock prevention) 교착 상태를 발생하는 하는 4가지 조건 중에 적어도 하나가 일어나지 않게 보장함으로써 교착상태를 예방 (1) 상호 배제 (Mutual Exclusion) 공유 가능한 자원들의 배타적인 접근을 요구하지 않는다. 예를 들어, 읽기 전용 파일 (read-only file)에 대해서는 배타적 접근이 필요하지 않는다. 반면에, 프린터 등.. 2021. 12. 9.
교착 상태 (Deadlocks) 1. 교착 상태 특성 (1) 필요조건 (i) 상호 배제 (mutual exclusion) 최소한 하나의 자원이 비공유 모드로 점유되어야 한다. 비공유 모드에서는 한 번에 한 스레드만이 그 자원을 사용할 수 있다. mutex lock, semaphore 사용 시 비공유 모드 (ii) 점유하며 대기 (hold-and-wait) 스레드는 최소한 하나의 자원을 점유한 채, 현재 다른 스레드에 의해 점유된 자원을 추가로 얻기 위해 반드시 대기해야 한다. Example) A thread : mutex 1 점유, mutex 2 대기 B thread : mutex 1 대기, mutex 2 점유 (iii) 비선점 (no preemption) 자원들을 선점할 수 없어야 한다. 자원이 강제적으로 방출될 수 없고, 점유하고 .. 2021. 12. 9.
동기화 (Synchronization) - (2) 1. Peterson의 해결안 (Peterson's Solution) flag, turn 변수를 사용 flag : 특정한 프로세스가 임계 구역으로 들어갈 준비가 되었다는 것을 나타낸다. (true, false) flag [i]가 true라면 Pi가 임계 구역으로 진입할 준비가 되었다는 것을 나타낸다. turn : 임계 구역으로 진입할 프로세스의 순번 turn == i이면 프로세스 Pi가 임계 구역에서 실행될 수 있다. // 프로세스 i의 실행 구조 while (true) { flag[i] = true; //프로세스 i가 임계구역에 들어갈 준비가 됨 turn = j; // 프로세스 j가 실행될 차례 (turn을 상대방에게 양보한다) while (flag[j] && turn == j); //flag[j]가 .. 2021. 12. 9.
반응형