운영체제 11

13. 입출력 시스템

Disk Scheduling head 가 움직이는 시간이 가장 오래걸리기 때문에, head 의 이동거리를 줄이는게 Disk Scheduling 의 핵심이다. Disk 의 구성요소 platter : 원판을 말함 track : platter 를 구성하는 원형 단위를 말함 cylinder : track 들의 세로 집합 sector : track 의 일부로 데이터가 저장하는 공간 header + 실제 데이터(512byte) + trailer 로 구성된다 header 와 trailer 는 관리용 데이터들이 들어감 ex) sector number, ECC(Error-Correcting Code) 등등 head : 데이터를 읽고, 쓰는 구성요소 Dist Management physical formatting : 컨트..

운영체제 2022.04.20

12. 파일 시스템

Disk Scheduling head 가 움직이는 시간이 가장 오래걸리기 때문에, head 의 이동거리를 줄이는게 Disk Scheduling 의 핵심이다. Disk 의 구성요소 platter : 원판을 말함 track : platter 를 구성하는 원형 단위를 말함 cylinder : track 들의 세로 집합 sector : track 의 일부로 데이터가 저장하는 공간 header + 실제 데이터(512byte) + trailer 로 구성된다 header 와 trailer 는 관리용 데이터들이 들어감 ex) sector number, ECC(Error-Correcting Code) 등등 head : 데이터를 읽고, 쓰는 구성요소 Dist Management physical formatting : 컨트..

운영체제 2022.04.13

11. 가상메모리

Demand Paging 실제로 필요할 때 page 를 메모리에 올리는 것으로 다음과 같은 장점이 있습니다. I/O 양의 감소 Memory 사용량 감소 빠른 응답 시간 더 많은 사용자 수용 Demand Paging 또한 Valid/Invalid bit 을 사용합니다. 여기서 Invalid bit 은 여러가지 의미를 나타냅니다. 프로세스가 사용하지 않는 주소 영역 페이지가 물리 메모리에 없는 경우(backing storage 에 있는 경우) 이 경우 page fault 가 났다고 표현합니다. Page fault Page fault 가 발생하면, trap 이 발생되어 운영체제에게 CPU 제어권이 넘어가게 됩니다. 그러면 운영체제는 다음과 같은 순서로, 디스크에서 메모리로 페이지를 올리는 작업을 하게 됩니다...

운영체제 2022.04.05

메모리 관리 II & 메모리 관리 III

Paging 메모리 단편화를 방지하기 위해 메모리를 페이지 라는 작은 단위로 나누어 메모리를 관리하는 관리하는 방법 프로세스(Process) 의 가상 메모리(Virtual memory)를 동일한 크기의 페이지(page) 단위로 분할 가상 메모리(Virtual memory) 의 내용이 페이지(page) 단위로 불연속적으로 저장됨 일부는 백업 저장소(Backing storage) 에, 일부는 물리 메모리(Physical memory) 에 저장됨 Paging 의 기본적인 기능 frame 과 page를 동일한 크기로 잘라서, frame 에 page 를 담습니다. External fragmentation(외부 조각) 이 발생하지 않는다는 장점이 있습니다. Internal fragmentation(내부 조각) 은 ..

운영체제 2022.03.30

데드락과 메모리관리

Deadlock Avoidance 데드락이 발생할 가능성이 있는 상황이면 safe로 아니라면 unsafe 로 분류합니다. Deadlock Avoidance 전략은 unsafe 상태에 있으면 자원을 할당하지 않기 때문에, unsafe 상태로 들어가지 않는것을 보장합니다. 관련된 알고리즘 자원 할당 그래프 알고리즘 Banker's 알고리즘 Banker's 알고리즘 Banker's 알고리즘 은 프로세스가 최대로 요청할 자원 개수를 알고있다고 가정합니다. Allocation 은 할당된 자원이고, Max는 최대로 요청할 자원 개수인데요. 이 표를 통해 앞으로 얼마만큼의 자원을 더 요청할 것인지 추측할 수 있습니다. Max - Allocation 의 결과인데요, 이게 더 요청할 가능성이 있는 ..

운영체제 2022.03.23

병행 제어 I

병행제어 병행성(Concurrency)이란, 두 개 이상의 프로세스가 동시에 병렬적으로 실행될 수 있는 상태를 말합니다. CPU가 여러 개인 경우에는 스케줄링이 더욱 복잡해 진다고 합니다. Homogeneous processor 인 경우 : 같은 종류의 프로세서인 경우 Queue에 한줄로 세워서 각 프로세서가 알아서 꺼내가게 할 수 있음 반드시 특정 프로세서에서 수행되어야 하는 프로세스가 있는 경우에는 문제가 복잡해짐 Load sharing 일부 프로세서에 job이 몰리지 않도록 부하를 적절히 공유하는 메커니즘 필요(웹 서버로 치면, 로드 밸런서 역할) 별개의 큐를 두는 방법 vs 공동 큐를 두는 방법 프로세스 스케줄링 방식 Systemmetric multiprocessing (SMP) 각 프로세스가 알..

운영체제 2022.03.09

CPU 스케줄링

CPU 스케줄링이 필요한 이유 I/O bound job CPU로 연산을 수행하는 시간보다, I/O에 많은 시간이 필요한 작업 ex) 사용자와 상호작용하는 프로그램 CPU bound job 계산 위주의 작업 ex) 과학 계산 프로그램 등 만약 CPU bound job 위주로 스케줄링을 하게되면, I/O bound job은 연산을 못할 뿐더러, I/O 장치까지 연산을 못하게 됩니다. 그래서 적절한 균형을 유지하여, CPU와 I/O 장치를 최대한 효율적으로 사용하기 위해서 CPU 스케줄링이 필요합니다. CPU Scheduler 7 Dispatcher CPU Scheduler Ready 상태의 프로세스 중에서 CPU를 할당할 프로세스를 고르는 역할 CPU Dispatcher CPU Scheduler가 선택한 ..

운영체제 2022.03.01

프로세스 관리

프로그램의 실행 주소 변환(Address translation) : 가상 주소를 실제 주소로 변환하는 행위 프로세스가 생성될 때는 물리 주소(Physical memory)에 생성되는데, 실제로 CPU는 가상 메모리(Virtual memory)를 통해 접근하기 때문에 주소 변환(Address translation)이 필요함 프로세스의 주소 공간(Process Address space) stack : 함수 내에서 사용되는 변수들 data : 전역 변수, 배열 등 code : 기계어 코드(main 함수, 사용자 정의 함수 등등) 커널 주소 공간의 내용 code 영역 코드 영역에는 시스템콜로 인터럽트가 발생했을 때 어떤 함수들이 실행되어야 하는지와 커널 함수들이 저장됨 ex) data 영역 PCB : 프로세스들..

운영체제 2022.02.23

컴퓨터시스템의 구조

이 글은 운영체제(2017) - (반효경 교수님) 강의를 보고 작성한 글 입니다. 운영체제란 무엇인가? 좁은 의미의 운영체제(커널) 운영체제의 핵심 부분으로, 메모리에 상주하는 부분 Readhat, What is kernal? 넓은 의미의 운영체제 커널 + 각종 주변 시스템 유틸리티를 포함한 개념 Linux system utilities Windows system utilities 운영체제의 목적 흔히 CPU를 컴퓨터의 두뇌라고 하지만, 교수님은 운영체제가 두뇌에 가까운 것 같다고 하셨습니다. - CPU 사람의 두뇌 운영체제 연산 O O O 기억 ▴ O O 판단 X O O 교수님이 뇌와 비교하시던 내용에서 운영체제는 어떤 연산을 하는지 궁금해서 어떤 내용인지 찾아봤습니다. 이중연산모드(커널모드, 사용자모..

운영체제 2022.02.16

운영체제 개요

이 글은 운영체제(2017) - (반효경 교수님) 강의를 보고 작성한 글 입니다. 혹시 잘못된 내용이 있을 경우 편하게 댓글로 알려주시면 감사하겠습니다! 운영체제(Operating System, OS) 란? 컴퓨터와 하드웨어 바로 위에 설치되어, 사용자 및 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층 운영체제의 목적 컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공 - 동시 사용자/프로그램들이 각각 독자적 컴퓨터를 사용하는 것 처럼 논리적으로 자원을 분리함 - 하드웨어를 다루는 복잡한 작업을 운영체제가 처리 컴퓨터 자원을 효율적으로 관리 CPU, 메모리, I/O 장치를 효율적으로 관리함 주어진 자원으로 최대한의 성능을 내도록 → 효율성 특정 사용자/프로그램이 자원을 독점하지 않도록 관리 → ..

운영체제 2022.02.08