CS지식/운영체제
-
15일차 - Disk Management and SchedulingCS지식/운영체제 2021. 5. 18. 22:55
지난 시간에는 디스크에 file이 어떻게 저장되는지에 대해 배웠다. 오늘은 디스크를 효율적으로 관리하는 법에 대해서 알아볼 수 있었고 디스크에 들어온 요청을 효율적으로 수행하기 위한 여러 알고리즘에 대해 배울 수 있었다. 1. 디스크 구조 우리는 이전 시간에 file을 디스크에 저장할 때 sector단위로 저장한다고 배웠다. sector는 디스크를 관리하는 최소단위로 디스크 내부에서 관리하는 단위를 의미한다. 디스크 외부에서는 sector를 어떻게 볼까? sector는 logical block단위로 외부에서 관리된다. logical block는 디스크 외부에서 보는 디스크의 정보 저장 공간들을 뜻한다. 주소를 가진 1차원 배열처럼 취급하여 외부에서 logical block으로 요청을 하면 그 요청에 대해..
-
14일차 - File System ImplementaionCS지식/운영체제 2021. 5. 16. 22:06
지난 시간에는 file의 접근방법에 대해 알아보았다. 이번에는 disk에 file이 어떻게 저장되는지에 대해 배웠고 여러 방법에 대한 장점과 단점에 대해 알 수 있었다. 1. Contiguous Allocation 디스크에 file을 저장하는 방법 중 하나인 contiguous allocation으로 말그대로 연속적으로 할당을 하는 것이다. 여기서, 먼저 알아두어야 할 개념은 disk에 file이 올라갈 때에는 통째로 올라가는 것이 아니라 disk를 일정한 크기의 sector로 나누고 file을 분할하여 올리는 것이다. 논리적 메모리에서 물리적 메모리로 올릴 때 paging기법에서 page와 비슷한 관점으로 보면 된다. 이렇게 동일한 크기의 sector가 하나의 disk에 여러 개가 존재하고 file이 ..
-
13일차 - File SystemCS지식/운영체제 2021. 5. 13. 22:41
지난 시간에는 물리적 메모리에 접근하기 위한 주소변환과 메모리의 공간을 선점하는 방법에 대해 알아보았다. 오늘은 file에 대해 배웠다. 메모리는 주소를 통해 접근하지만 file은 이름을 통해 접근하는게 큰 차이점인 것같다. 1. File과 File System 먼저, file을 정의해보면 서로 관련있는 정보의 집합에 이름을 지어 놓은 것이다. 위에서 말했듯이 file은 이름을 통해 접근하므로 file마다 이름이 존재해야한다. 일반적으로 file은 비휘발성의 보조기억장치에 저장되고 create, read, write, reposition, delete, open, close등의 연산작업이 가능하다. file system은 운영체제에서 파일을 관리하는 부분으로 파일 및 파일의 메타데이터, 디렉토리 정보 등..
-
12일차 - Virtual MemoryCS지식/운영체제 2021. 5. 10. 23:13
지난 시간까지는 물리적 메모리에 프로세스를 올리는 방법과 논리적 주소를 물리적 주소로 바꾸는 방법에 대해 배웠다. 오늘은 프로세스가 실행되면 기본적으로 각각의 프로세스가 가지는 논리적 주소공간인 vritual memory에 대해 배웠다. virtual memory에서 paging기법을 사용하면 어떻게 동작하는지에 대해 알 수 있었다. 1. Demand Paging demand paging은 요청이 있는 경우에 해당 페이지를 메모리에 올리는 것이다. demand paging을 사용하면 다음과 같은 장점이 존재한다. ① I/O양의 감소 ② memory 사용량 감소 ③ 빠른 응답 시간 ④ 더 많은 사용자 수용 저번 시간에 page table에서 해당 page가 물리적 메모리에 있는지를 알려주기 위해 vaild..
-
11일차 - Memory Management(2)CS지식/운영체제 2021. 5. 7. 23:31
오늘은 저번 시간에 이어 메모리 관리에 대한 공부를 했다. 메모리 관리를 위한 기법들을 배우고 저번 시간에 배우지 못한 부분인 multi paging과 segmentation에 대해 배웠다. 1. Two-level Page Table 앞 시간에 Paging 기법에 대해서 배웠다. 프로세스를 동일한 크기인 page로 나누어 필요한 부분만 메모리에 올려 사용하는 기법이다. 그러면 two-level page table은 무엇이고 왜 나온 것일까? two-level page table은 말 그대로 page table을 2개 사용하여 paging기법을 구현한 것이다. 기존 paging기법은 하나의 page table을 사용하여 논리적 주소를 물리적 주소로 변환하여 메모리에 접근하는 방식인데 2개의 page tab..
-
10일차 - Memory Management(1)CS지식/운영체제 2021. 5. 4. 23:42
오늘부터는 메모리를 어떻게 관리하는지에 대해 배웠다. 지난 시간동안 프로세스들이 CPU를 얻는 과정에서 발생하는 일들을 배웠는데 오늘은 프로세스가 실행되고 물리적인 메모리에 올라가면서 발생하는 일들 중 일부분을 배울 수 있었다. 1. memory management의 기본 우선 메모리 관리를 배우기 전에 메모리에 대해 잠깐 언급하자면 메모리는 주소를 통해 접근하는 매체이다. 여기서 주소는 logical address와 physical address로 나뉜다. 1) logical address logical address는 가상주소(virtual address)와 같은 말로 프로세스마다 독립적으로 가지는 주소 공간이다. 각 프로세스마다 주소할당은 0번부터 시작한다. 2) physical address ph..
-
9일차 - Deadlock(교착상태)CS지식/운영체제 2021. 5. 1. 23:08
오늘은 Deadlock에 대해 배웠다. 프로세스 동기화를 배우면서 deadlock상황에 대해 간단히 언급이 되었는데 오늘은 더 저세하고 처리방법에 대해 알 수 있었다. 1. Deadlock이란 deadlock은 일련의 프로세스들이 서로가 가진 자원을 기다리며 block된 상태를 말한다. 즉, 자신이 가지고 있는 자원들은 내어놓지 않고 다른 프로세스가 가지고 있는 자원을 요청하는 상태여서 진행이 되지 않는 상태이다. 여기서 말하는 자원은 하드웨어, 소프트웨어 등을 포함하는 개념으로 I/O device, CPU cycle, memory space, semaphore 등을 뜻한다. deadlock 상태인 예를 들어 얘기해보자. 시스템에 2개의 tape drive A, B가 존재하고 프로세스1은 A를 가지고 있..
-
8일차 - Process Syncronization(2)CS지식/운영체제 2021. 4. 28. 23:31
저번 시간에 이어 프로세스 동기화에 대해 배웠다. 오늘은 동기화 시에 발생하는 대표적인 문제에 대해 알아보고 코드를 보면서 해결법을 알아보는 시간을 가졌다. 1. Bounded-Buffer Problem (Producer-Consumer Problem) 동기화 문제 중 첫 번째로 Bounded-Buffer Problem이다. 버퍼의 크기가 유한한 환경에서의 producer(생산자)와 consumer(소비자)의 문제이다. 버퍼에는 Producer 프로세스와 consumer 프로세스 2가지가 존재하고 버퍼는 공유되어 사용된다. producer 프로세스는 공유버퍼에 데이터를 집어넣는 역할을 하고 consumer 프로세스는 공유 버퍼에서 데이터를 꺼내는 역할을 한다. 여기서 발생하는 동기화 문제는 어떠한게 있을..