본문 바로가기

운영체제

운영체제 - 파일 시스템(2) 운영체제 - 파일 시스템(2) 파일 시스템은 /Path를 file descriptor number로 변환한다. 이 inode정보를 main memory에 캐싱(caching)하여 디스크접근 오버헤드를 줄일 수 있다. 그러나 캐싱을 사용하면 data consistency(=redundancy)문제가 발생한다. 파일 시스템이 제공하는 주요 기능 1. logical address(=/Path)를 physical address(=file descriptor number)로 변환 2. 사용자 데이터를 저장장치로부터 읽어오거나 저장장치에 기록하는 역할 수행 주요 File Access 패턴 1. Sequential Access - file pointer를 한 칸씩 움직이면서 파일의 내용을 읽는 방법 2. Random..
운영체제 - 파일 시스템(1) 운영체제 - 파일 시스템(1) 파일(file) - A named collection of bytes stroed on disk(ssd) 사용자와 운영체제가 파일을 바라보는 관점의 차이 - 파일은 사용자 입자에서는 byte sequence이지만, 운영체제 입장에서는 block sequence이다. Naming - 사용자가 file 접근(addressing)을 위한 text name이다. - I/O device의 접근도 naming을 통한 file접근으로 이루어진다. 1. 파일 시스템은 /path를 file descriptor로 변경시키는 역할을 수행한다. (* file descriptor : 파일 내용에 접근하기 위해 필요한 메타 데이터를 저장하는 자료구조) 2. 파일 시스템은 file을 그룹핑(group..
운영체제 - Device driver 운영체제 - Device driver Device driver의 정의 - A computer program that enables OS to interact with a hardware device Device driver는 I/O driver와 통신이 가능하도록 하게 하는 소프트웨어이다. I/O device가 character device, block device 혹은 network device이냐에 따라 각기 다른 device driver에 의해 처리된다. block device driver는 character device driver와 기능이 흡사하지만 buffer cache공간을 지녔다는 차이가 있다.(*File : named collection of data) 파일 시스템의 역할은? 1. 디스크..
운영체제 - I/O Hardware 운영체제 - I/O Hardware 과 같이 컴퓨터 시스템에서 input/output 기능을 수행하는 hardware를 I/O device라고 한다. I/O device는 그래픽 카드, 네트워크 카드, 하드디스크/SSD 등이 있다. 컴퓨터 시스템에서 CPU와 I/O device간의 통신은 BUS를 통해 이루어진다. Address Bus는 접근하고자 하는 메모리 주소를, Data Bus는 접근한 메모리 주소에 적힌 값을, Control Bus는 Write/Read 여부를 결정한다. BUS의 종류로 SATA, PCIe, SCSI 가 있다. 컴퓨터 시스템에서 I/O device를 조작(control)한다는 것은 I/O device의 레지스터 값을 수정하는 것과 동일한 말이다. I/O device의 레지스터(이..
Demand Paging - (3) Thrashing and Working set Demand Paging - (3) Thrashing and Working set Thrashing은 resource를 최대한 사용하고 있으나 아무런 유용한 일을 하지 못하는 현상을 일컬음. 예를 들어, CPU Scheduler는 cpu utilization을 최대한 높이는 것이 목적이다. 그러므로 cpu utilization이 낮으면 degree of programming을 늘려 cpu utilization을 활용하고자 한다. 그와 동시에 Memory management는 process이 수가 많아지면 page fault의 수가 증가하여 process들이 waiting 큐에서 대기하게 된다. 이에 따라 cpu utilization이 낮아지는 악순환이 반복된다. Thrashing이 발생하는 과정 1. 시..
Demand Paging - (2) Demand Paging key issue Demand Paging - (2) Demand Paging key issue Page selection policy - 디스크에서 페이지를 가져오는 정책 1. Demand paging : 요청이 있을 때(on demand) 디스크에서 메인 메모리로 페이지 로드 2. Pre-paging : 미래에 사용될 것으로 예측되는 페이지를 미리 디스크에서 메인 메모리로 로드 - 효과적인 pre-paging방안? spatial locality에 기반하여 page fault가 발생한 페이지 근처에 있는 페이지들을 메인 메모리로 로드한다. Page replacement policy - 메인 메모리가 꽉 찼을 때, 어떤 페이지를 swap-out할 것인가를 결정하는 정책 1. Random : 하드웨어 적으로 랜덤하게 vic..
Demand Paging - (1) Demand Paging이란? Demand Paging - (1) Demand Paging이란? Demand Paging - 메모리 관리 메커니즘(Memory management, MMU 메커니즘)을 사용해서 여러 프로세스가 시스템의 메모리를 효율적으로 공유할 수 있도록 하는 기술. Q. 프로그램이 필요로 하는 모든 메모리(Code segment, Data segment, Stack segment)가 physical memory에 있어야 하는가? - 그렇지 않다. 왜냐하면 프로그램은 Locality를 가지고 있기 떄문이다. - Locality 특성을 이용해서 프로세스가 그 때 필요로 하는 Page를 physical memory에 로드하고 사용하지 않는 Page는 디스크에 적재함으로써 적은 량의 메모리로 큰 효율을 나타낼 수 있었다 -..
Segmentation and Paging - (3) Paged Segmentation Segmentation and Paging - (3) Paged SegmentationPaged Segmentation - segmentation과 paging 각각의 장점을 한꺼번에 얻기 위해 두 기법을 동시에 사용. 이를 위해 먼저 segmentation을 수행하고 각 segment 별로 paging을 수행한다. Segmentation의 장점1. 두 User Process가 동일한 코드(Text Segment)를 공유하기 용이하다.2. 각 Memory Section들에게 각기 다른 Read/Write 권한을 설정할 수 있다 Paging의 장점1. Memory fragmentation(external fragmentation)을 없앰2. swapping이 용이해진다.(=메모리를 분할하는 크기를 swap..