CS/운영체제 15

[운영체제] 버퍼와 캐시 차이점

목차 1. 버퍼 2. 캐시 3. 버퍼와 캐시의 차이 버퍼 1) 개념 데이터를 한 곳에서 다른 곳으로 전송할 동안 일시적으로 데이터를 보관하는 메모리 영역. 예를들어 CPU는 1초에 100개의 데이터를 처리할 수 있지만 정작 처리할 데이터를 가지고 있는 보조 기억 장치는 데이터를 1초에 세 개밖에 보내주지 않는다. CPU입장에서는 아무리 일을 열심히 하고 싶어도 데이터를 보내주지 않기 때문에 능력에 비해 97 개 만큼 효율성을 잃게 된다. 따라서 entire block 단위로 읽기 쓰기를 하지 않고, 작은 block 단위로 buffer에 데이터를 모아두고, CPU는 다른 일을 하다가 돌아와서 buffer의 데이터를 연산한다. 이를 위해 임시 저장소인 buffer가 있는 것이다. 2) 특징 1. 일시적으로 ..

CS/운영체제 2022.07.26

[운영체제] 파일 시스템(File System) 정리

목차 1. File and File System 2. File Protection 3. Directory 4. Directory Implementation 4. Allocation 방식 5. Free Space Management File and File System 1. 파일(File)은 논리적인 저장 단위로, 관련된 정보 자료들의 집합을 의미한다. Record, Block 단위로 비휘발성 보조기억장치(하드디스크)에 저장된다. 2. 파일 속성(File attribute) 또는 파일 메타데이터(metadata)는 파일 자체의 내용이 아니라 파일을 관리하기 위한 각종 정보들을 의미한다. 파일 이름, 유형, 저장 위치, 사이즈 등이 이에 해당한다. 3. 파일 시스템(File System)은 운영체제와 모든 ..

CS/운영체제 2022.07.25

[운영체제] 디스크 시스템

목차 1. 디스크 시스템 디스크 시스템 1. Disk pack 하드 디스크의 원판을 Disk pack이라고 한다. 디스크 팩의 구성 1) Sector 데이터 저장/판독의 물리적 단위 2) Track Platter 한 면에서 중심으로 같은 거리에 있는 sector들의 집합 3) Cylinder 같은 반지름을 갖는 track의 집합(track 과 cylinder는 혼용하는 개념) 4) Platter 양면에 자성 물질을 입힌 원형 금속판 데이터의 기록/판독이 가능한 기록 매체 5) Surface Platter의 윗면과 아랫면 2. Disk drive Disk pack에 데이터를 기록하거나 판독할 수 있도록 구성된 장치이다. 디스크 드라이브의 구성 1) Head 디스크 표면에 데이터를 기록/판독한다. 2) Ar..

CS/운영체제 2022.07.22

[운영체제] 물리 메모리 해제와 할당의 동작 원리

목차 1. 물리 메모리 해제 1.1 LRU, LFU, FIFO 알고리즘 1.2 Clock 알고리즘 2. 물리 메모리 할당 2.1 Thrashing 2.2 working-set 알고리즘 2.3 pff 알고리즘 프로세스를 할당 할 때, 물리 메모리가 가득차 있으면, 특정 프로세스의 물리 메모리를 해제하고, 할당하려는 프로세스의 정보를 하드 디스크에서 읽어와 물리 메모리에 할당하게 된다. 그렇다면 물리 메모리는 어떤 기준으로 해제하는지 동작 원리에 대해 알아보자. 물리 메모리 해제 1. LRU, LFU, FIFO 1) LRU(Least Recently Used Algorithm) 가장 오랫동안 참조되지 않은 페이지를 교체하는 방법이다. 2) LFU(Least Fequently Used Algorithm) 가장..

CS/운영체제 2022.07.21

[운영체제] 가상메모리

이번 글에서는 가상메모리가 없는 경우와 있는 경우를 비교해 가상 메모리가 등장한 이유를 알아보고, 구체적으로 어떻게 동작을 하는지, 그리고 마지막으로 동작과 관련된 페이징 기법에 대해 설명한다. 목차 1. 가상메모리의 등장이유 2. 가상메모리의 동작 방식 3. 페이징 기법 가상 메모리의 등장 이유 1. 가상 메모리가 없는 경우 가상 메모리가 없고 현재 RAM은 1GB라고 가정해본다. 이런 경우, 1G를 넘어선 프로그램은 할당할 수 없게 된다. 그래서 등장하게 된 것이 가상 메모리 개념이다. 그렇다면 가상 메모리는 어떻게 이 문제를 해결할까? 2. 가상 메모리의 등장 1) 메모리 공간 부족 문제 해결 가상 메모리를 활용하여 프로그램을 잘게 자르고, 물리 메모리에 매핑할 수 있다. 앞서 직면한 메모리 부족상..

CS/운영체제 2022.07.20

[운영체제] 페이징 기법

[운영체제] 페이징 기법 목차 1. 개념 2. 주소 매핑 동작 방식 3. Page fault 4. TLB 5. 2단계 페이징 기법 개념 논리 메모리와 물리 메모리를 동일한 크기로 분할해, 분할된 페이지 별로 메모리를 할당하는 것을 의미한다. 분할된 페이지에는 메모리가 하나의 덩어리 형태로 존재한다. 논리주소(VA)와 물리주소(PA)를 매핑하기 위한 page table이 존재하며, 각 페이지 안에서 페이지 부분의 상대적인 위치는 바뀌지 않는다.( 서울시 -> 제주도 but 번지수는 그대로). 미리 설명하자면 페이지의 상대적인 위치는 offset이다. 주소 매핑 동작 방식 예를 들어, Virtual Page Number 0은 0~4095의 주소를 가지고 있다. 이는 Page table에 매핑된 Physica..

CS/운영체제 2022.07.19

[운영체제] 주소 바인딩과 MMU

[운영체제] 주소 바인딩 목차 1. 논리 메모리와 물리 메모리 2. 주소 바인딩 3. MMU 4. 관련 용어 정리 논리 메모리와 물리 메모리 1. 논리 메모리 주소와 물리 메모리 주소 논리 메모리 주소는 각 프로세스마다 독립적으로 가지는 주소 공간으로 0번지부터 시작한다. 논리 메모리 주소는 프로그램이 실행 중일 때 CPU에 의해 참조되는 메모리 주소이다. 논리 메모리 주소는 가상의 주소로서 실제로 존재하지 않는다. 그래서 가상 메모리라고 흔히 알려져 있다.CPU는 이를 참조해 실제 물리 메모리의 위치에 접근하게 된다. 물리 메모리 주소는 실제 물리적으로 존재하는 메모리의 주소이다. 사용자는 직접 물리적 메모리에 접근하지 못하고, 논리 메모리로 우회해서 접근할 수 있다. 따라서 논리 메모리는 물리 메모리..

CS/운영체제 2022.07.18

[운영체제] DeadLock과 그 해결방법

목차 1. 데드락 2. DeadLock 해결 방법 3. Resource-Allocation Graph 데드락 개념 둘 이상의 프로세스가, 각각 점유하고 있는 자원을 놓치않고 서로 기다릴 때 무한 대기에 빠지는 상태를 의미한다. 발생 조건 1. 상호 배제 매 순간 하나의 프로세스만 자원을 사용할 수 있다. 2. 비선점 프로세스는 자원을 스스로 내어놓을 뿐 강제로 뺏기지 않는다. 3. 보유대기 자원을 가진 프로세스가 다른 자원을 기다릴 때 보유 자원을 놓지 않고 계속 가지고 있음 4. 순환대기 자원을 기다리는 프로세스 간에 사이클이 형성되어야 한다. P0는 P1의 자원을 기다림 P1는 P2의 자원을 기다림 .. Pn은 P0의 자원을 기다림 DeadLock 해결 방법 1. DeadLock Prevention ..

CS/운영체제 2022.07.18

[운영체제] 세마포어와 모니터

목차 1. 세마포어 2. 뮤텍스 3. 모니터 세마포어 특징 ● 동시에 접근할 수 있는 '허용 가능한 개수'를 가지고 있는 Counter 변수가 존재한다. 예를 들어, 화장실이 3칸이고, 열쇠가 3개라면 3명은 대기없이 바로 화장실을 사용할 수 있다. ● 세마포어는 Counter의 개수에 따라 두 가지로 나뉘는데, 1개이면 뮤텍스, 나머지를 세마포어라고 한다. ● 세마포어는 소유할 수 없다. 따라서 세마포어를 소유하지 않은 쓰레드가 세마포어를 해제할 수 있는 문제가 발생한다. ● busywaiting은 예전의 metaphores의 문제며, 현재는 진입하지 못하면 blocked가 기본이고, busywaiting이 blocked 보다 더 자원을 덜 쓸 경우에만 busywaiting을 사용한다. 뮤텍스 특징 ●..

CS/운영체제 2022.07.18

[운영체제] process Synchronization 문제

목차 1. Bounded-Buffer Problem 2. Readers-Writers Problem 3. Dining-Philosopher Problem 4. Monitor Bounded-Buffer Problem 개념 프로세스에는 공급자와 소비자가 있다. 공급자는 Buffer의 빈공간에 데이터를 집어넣고 소비자는 Buffer의 데이터를 꺼내는 역할을 한다. 만약 공급 프로세스 여러개가 동시에 하나의 빈 공간에 데이터를 집어넣는다거나, 여러 소비 프로세스가 하나의 Buffer 데이터에 접근해 동시에 꺼내면 문제가 생긴다. 또한 Buffer가 가득차 데이터를 집어넣을 수 없는데, 공급 프로세스가 데이터를 넣기 위해 접근하거나, Buffer가 없는데, 소비 프로세스가 데이터를 가져가기 위해 접근하면 문제가 ..

CS/운영체제 2022.07.17
728x90