中庸
article thumbnail
[Operating System] Virtual Memory
운영체제 2023. 6. 1. 13:11

이전 Memory Management 포스팅에서 잠깐 Virtual Memory 에 대해 언급한 바 있습니다. 이번 포스팅에서 이것에 대해 자세히 알아보겠습니다. Virtual Memory 이전 Memory Management 방식에서 Paging, Segmentation 방식으로 메모리를 관리하는 방법에 대해 배웠습니다. 프로세스가 반드시 한 번에 메인 메모리에 로드되거나 Swap out 될 필요없이, 프로세스를 작게 쪼개 일부분만 올려 운용할 수 있습니다. 그렇기 때문에 일부분은 보조 기억장치에서 저장하고 있다가 필요할 때 메인 메모리에 로드하는 방법으로 메모리를 관리하면, 메인 메모리 공간을 더욱 효율적으로 사용할 수 있습니다. 이렇게 메인 메모리와 보조 기억장치를 함께 사용하여 프로세스를 관리하는..

article thumbnail
[Operating System] Memory Management
운영체제 2023. 5. 23. 13:29

운영체제는 프로세스의 할당과 반납 등 과정을 수행하기 위해 메모리 관리를 수행합니다. 그렇다면 메모리 관리란 무엇일까요? 메모리 관리란 다음 기능들을 의미합니다. 메모리의 할당 (Memory Allocation) 메모리의 보호 (Memory Protection) 메모리 재배치 (Relocation) 메모리 공유 (Sharing) 위 기능들에 대해 하나씩 알아봅시다. 메모리의 할당 (Memory Allocation) 메모리의 할당은, 물리적인 공간인 메인 메모리를 쪼개서 프로세스에게 할당하는 것을 의미합니다. 이 때, 메인 메모리를 효율적으로 사용할 수 있도록 적당한 크기의 공간을 프로세스에 할당 / 반납받아 관리하여야 합니다. 어떻게 메모리를 "쪼갤 수" 있는지, 어떻게 할당하고 반납하는 지는 뒤에 다루..

article thumbnail
[Operating System] I/O 관리 및 디스크 스케쥴링
운영체제 2023. 5. 20. 03:39

컴퓨터에는 여러 I/O Device 를 연결할 수 있습니다. 예를 들어, 데이터를 저장하기 위한 SSD, HDD 도 I/O Device 이고, 마우스, 키보드, 모니터 등도 I/O Device 입니다. 이번 포스팅에서는 위와 같은 I/O Device 를 운영체제가 어떻게 관리하는 지 알아보겠습니다. I/O Device I/O Device 는 전자장치로 구성되어 있는 Controller 부분과 Mechanical 하게 구현된 Machine 부로 구현되어 있습니다. HDD 를 예시로 살펴보겠습니다. HDD 의 디스크 부분은 Machine Arm 이 이동하여 데이터를 읽고 쓸 수 있습니다. HDD 의 컨트롤러 부분은 다음과 같이 구성되어 있습니다. 컨트롤러는 Control Register, Status Reg..

article thumbnail
[Operating System] 동시성 제어 2
운영체제 2023. 4. 15. 00:47

이전 포스팅에서 동시성 문제를 어떻게 해결할 수 있는가? 에 대한 소프트웨어적인 해결책에 대해 알아보았습니다. 이번 포스팅에서는 하드웨어의 Support 을 받아 동시성 문제를 해결하는 방법에 대해 알아봅시다. 먼저, 동시성 문제를 어떻게 해결할 수 있었는지 복습해봅시다. 동시성 문제의 해결책으로 두가지 방법이 있었습니다. 1. Critical Section 의 Code 를 실행할 때 Interrupt 를 Disable 해서 Atomic 하게 처리한다. 2. Critical Section 의 위/아래로 Entry Section/End Section 을 만들어 Critical Section 을 Fence 안에 두어 Mutual Exclusion 을 보장한다. 그리고 이 두가지 방법 중 2번째, Fence ..