본문 바로가기
[OS] 운영체제 11. File Systems 2 : Allocation 종류, inode, FAT 파일시스템 Allocation of File Data in Disk Contiguous Allocation 단점 : - external fragmentation, hole이 발생 장점 : - Fast I/O (헤드가 이동하는 시간이 짧음) - 한번의 seek/rotation 으로 많은 바이트 transfer - Realtime file용, process의 swapping 용으로 사용 - Direct access(=random access) 가능 Linked Allocation 장점 : - external fragmentation 발생 없음 단점 : - No random access - Reliability 문제 - 한 sector 가 고장나 pointer 유실시 많은 부분을 잃음 - Pointer를 위한 공간이 b.. 2020. 3. 16.
[OS] 운영체제 11. File Systems 1 : 운영체제를 통한 프로세스의 파일시스템 접근 순서, File Protection File named collection (메모리는 주소를 통한 접근) 비휘발성의 보조기억장치에 저장 운영체제는 다양한 저장 장치를 file 이라는 동일한 논리적 단위로 볼 수 있게 해 줌 Operation 종류 : create, read, write, reposition, delete, open, close File attribute (metadata) 파일 이름, 유형, 저장위치, 파일사이즈, 접근권한, 시간(생성/변경/사용), 소유자과 같은 파일 자체의 내용이 아니라 파일을 관리하기 위한 각종 정보들 File system 운영체제에서 파일을 관리하는 부분 파일 및 파일의 메타데이터, 디렉토리 정보 파일의 저장 방법 결정 파일 보호 Directory 파일의 메타데이터 중 일부를 보관하고 있는 일종의 특.. 2020. 2. 22.
[OS] 운영체제 10. Virtual Memory 2 : 페이지 할당, Global replacement, Thrashing, Thrashing 예방책 Page Frame의 Allocation(할당) : 각 Process에 얼마만큼의 Page Frame을 할당할 것인지의 문제 - 메모리 참조 명령어 수행시 명령어, 데이터 등 여러 페이지를 동시에 참조하므로 명령어 수행을 위해 최소한 할당되어야 하는 frame 의 수가 있다. (page fault 를 줄이기 위해) Allocation Scheme Equal allocation : 모든 프로세스에 똑같은 갯수 할당 Proportional allocation : 프로세스 크기에 비례하여 할당 Priority allocation : 프로세스의 priority에 따라 다르게 할당 Global replacement 와 Local replacement 의 차이 Global replacement Replace시 다른.. 2020. 2. 18.
[OS] 운영체제 10. Virtual Memory : Demand paging, Page fault, Page fault 알고리즘(Optimal/FIFO/LRU/LFU) Demand Paging - 실제로 필요할 때 page를 메모리에 올리는 것 - I/O 양의 감소 - Memory 사용량 감소 - 빠른 응답 시간 - 더 많은 사용자 수용 Valid/Invalid bit 의 사용 - 사용되지 않는 주소영역인 경우, 페이지가 물리적 메모리에 없는 경우 : Invalid - 처음에는 모든 page entry 가 invalid로 초기화 - address translation 시에 invalid bit이 set 되어 있으면(요청한 주소가 메모리에 올라와 있지 않은 경우) page fault 발생 page fault : 요청한 주소가 메모리에 올라와 있지 않은 경우 발생 invalid page를 접근하면 MMU가 trap을 발생시킨다 (page fault trap) Kernel .. 2020. 2. 16.
[OS] 운영체제 9. Memory Management 3 : 불연속할당 기법 (Paging , Segmentation) 1. Contiguous allocation (연속 할당) 1-1) 고정분할 1-2) 가변분할 2. Noncontiguous allocation (불연속 할당) 1) Paging 기법 - Page table은 main memory 에 상주 - Page-table base register(PTBR)가 page table을 가리킴 - Page-table length register(PTLR)가 테이블 크기를 보관 - 모든 메모리 접근 연산에는 2번의 memory access 필요 - page table 접근 1번, 실제 data/instruction 접근 1번 - 속도 향상을 위해 자주 사용되는 주소값을 가지고 캐시와 같이 가지고 있는 TLB 사용 ※ TLB - TLB 조회시 fullscan이 이루어지므로,.. 2020. 2. 14.
[OS] 운영체제 9. Memory Management 2 : 메모리 할당(연속 할당, 불연속 할당) Allocation of Physical Memory : 메모리 할당 메모리는 일반적으로 두 영역으로 나뉘어 사용 1) OS 상주 영역 : interrupt vector 와 함께 낮은 주소 영역 사용 2) 사용자 프로세스 영역 : 높은 주소 영역 사용 사용자 프로세스 영역의 할당 방법 1. Contiguous allocation (연속 할당) : 각각의 프로세스가 메모리의 연속적인 공간에 적재 1) 고정 분할 방식 - 물리적 메모리를 몇 개의 영구적 분할로 나눈다 - 분할당 하나의 프로그램을 적재 - 내부/외부 조각이 발생 * 외부조각 : 프로그램의 크기보다 분할의 크기가 작은 경우, 아무 프로그램에도 배정되지 않은 빈 공간이지만 프로그램이 올라갈 수 없는 작은 분할 * 내부조각 : 프로그램 크기보다 분.. 2020. 2. 14.
[OS] 운영체제 9. Memory Management : 논리/물리 주소, MMU(Memory Management Unit) 메모리의 주소를 크게 두가지로 나눌 수 있다 Logical address(=virtual address) - 프로세스마다 독립적으로 가지는 주소 공간 - 각 프로세스마다 0번지부터 시작 - CPU가 보는 주소는 logical address Physical address - 메모리에 실제 올라가는 위치 주소 바인딩 : 프로그램이 실제로 메모리에 올라 갈 때 주소를 결정하는 것 Symbolic Address > Logical Address > Physical address 주소 바인딩(Address Binding) 방식의 종류 1) Compile time binding - 물리적 메모리 주소가 컴파일시 알려짐 - 시작 위치 변경시 재컴파일 - 컴파일러는 절대 코드 생성 2) Load time binding .. 2020. 2. 11.
[OS] 운영체제 8. Deadlock : 교착상태의 발생 조건(상호 배제, 비선점, 보유대기, 순환대기)과 처리방법 교착상태 Deadlock 일련의 프로세스들이 서로가 가진 자원을 기다리며 block 된 상태 Resource (자원) - 하드웨어, 소프트웨어 등을 포함하는 개념 ex) I/O device, CPU cycle, memory space, semaphore 등 - 프로세스가 자원을 사용하는 절차 : Request, Allocate, Use, Release Deadlock example 1] 시스템에 2개의 tape drive가 있고 프로세스 P1과 P2 각각이 하나의 tape drive를 보유한 채 다른 하나를 기다리고 있다 Deadlock example 2] Binary semaphores A and B Deadlock 발생의 4가지 조건 1. Mutual exclusion (상호 배제) : 매 순간 하나.. 2020. 2. 9.
[OS] 운영체제 7. Process Synchronization 3 : 동기화 문제의 예, 모니터 1. Bounded-Buffer Problem : 공유버퍼 문제 (Producer-Consumer Problem) Producer : 데이터를 넣어주는 생산자 Comsumer : 데이터를 사용하는 소비자 발생하는 문제 1) 복수의 생산자 동시접근 2) 복수의 소비자 동시접근 3) 버퍼가 꽉 차있을 때 생산자의 접근 4) 버퍼가 비어있을 때 소비자의 접근 Shared data] buffer 자체 및 buffer 조작 변수(empty/full buffer의 시작 위치) Synchronization variables] mutual exclusion : need binary semaphore (공유데이터의 상호배제를 위해(자원 접근 넣고 빼기)) resource count : need integer semaph.. 2020. 2. 8.
[OS] 운영체제 7. Process Synchronization 2 : 세마포어(semaphore) Semaphores 임계영역 문제를 해결하기 위한 알고리즘(참고)들을 추상화 시킴 [Semaphore S] integer variable 아래 두가지 atomic 연산에 의해서만 접근 가능 P(S) 자원 있으면 가져감 while(S 2020. 2. 6.