OS6 [OS] Disk 구조 구성 요소Spindle: 디스크 플래터(Platter)를 고정하고 회전시키는 축이다. 모든 플래터는 스핀들에 의해 동일한 속도로 회전한다.Platter: 자성 물질로 코팅된 원판 형태의 디스크이다. 디스크 드라이브에는 여러 개의 플래터가 수직으로 쌓여 있을 수 있다.Read/Write Head: 데이터를 읽고 쓰는 장치이다. 각 플래터의 양면에 하나씩 붙어 있으며, 헤드는 플래터 표면 위를 이동하면서 데이터를 액세스한다.Arm: Read/Write Head를 움직이는 기계 장치이다. 헤드가 트랙을 따라 이동할 수 있도록 돕는다.Cylinder: 같은 반지름을 갖는 모든 플래터의 트랙들의 집합이다. 이는 여러 플래터가 같은 위치에 있는 트랙을 논리적으로 묶은 개념이다.디스크 구조Track: 플래터의 .. 2024. 7. 1. [OS] File System File파일은 저장의 논리적 단위로, 바이트(Byte)의 집합을 의미한다. 운영 체제(OS) 관점에서 파일은 데이터를 저장하고 관리하는 기본 단위이다. 파일은 텍스트, 이미지, 실행 가능한 프로그램 등 다양한 형태로 존재할 수 있으며, 이러한 파일들을 체계적으로 관리하기 위해 디렉토리 구조가 사용된다.하드웨어적 관점에서는 블록(Block)이라는 최소 단위가 존재하며, 이는 디스크의 섹터(Sector)와 트랙(Track)으로 나눈 부분을 의미한다. 파일 시스템은 이러한 블록을 이용해 데이터를 효율적으로 저장하고 관리한다. 사용자 관점에서 파일 시스템의 지속성(Persistence), 사용 편의성(Ease of Use), 효율성(Efficiency), 속도(Speed), 보호(Protection)가 중요하다.. 2024. 7. 1. [OS] Memory Management Segmentation*Segment: 프로세스의 메모리를 논리적으로 나눈 단위 세그멘테이션은 프로세스를 여러 세그먼트 또는 파티션으로 나누는 메모리 관리 기법이다. 각 세그먼트는 Code(read only), Data, Bss, Stack과 같은 프로그램의 다른 부분을 나타내며, 크기가 다를 수 있다. 이 기법은 세그먼트를 비연속적으로 물리 메모리에 할당할 수 있어 연속적인 메모리 할당의 필요성을 줄인다. 다만, 각 세그먼트 내부는 연속적으로 할당되어야 한다. 세그멘테이션의 주요 장점 중 하나는 가변 크기 세그먼트를 사용하여 내부 단편화를 줄일 수 있다는 점이다. 이는 세그먼트가 동적으로 성장하거나 축소될 수 있어 내부 단편화를 최소화할 수 있음을 의미한다. 또한, 세그멘테이션은 각 세그먼트를 독립적으.. 2024. 7. 1. [OS] Deadlock TerminologyDeadlock은 두 개 이상의 프로세스가 서로의 자원을 필요로 하면서 상대방의 작업 완료를 무한정 기다리는 현상이다. 이 상황에서 각 프로세스는 상대방이 필요로 하는 특정 이벤트를 제공할 수 있는데, 모든 관련 프로세스가 서로의 이벤트를 기다리면서 어느 쪽도 진행할 수 없게 되어 결국 모두 정지하게 된다.Deadlock의 필요조건에는 4가지가 있다.상호 배제 (Mutual Exclusion): 요구하는 자원이 다른 프로세스에 의해 사용 중일 경우, 해당 자원이 방출될 때까지 기다려야 한다.보유 대기 (Hold-and-Wait): 프로세스가 최소 하나 이상의 자원을 보유한 상태에서 추가 자원을 획득하기 위해 대기할 수 있다.비선점 (No Preemption): 다른 프로세스나 운영체제.. 2024. 7. 1. [OS] CPU Scheduling TerminologyCPU Scheduling은 운영체제가 시스템의 여러 프로세스들 사이에서 CPU 자원을 효율적으로 분배하기 위해 사용하는 메커니즘이다. 이는 여러 프로세스가 동시에 실행되고자 할 때, 어떤 프로세스가 CPU를 사용할지를 결정하는 과정이다. 왜 필요한가? (Policy) 실행 중인 프로세스는 CPU burst와 I/O burst를 무한히 반복한다. I/O burst로 이동할 때에는 context switch한 후 이동하는데, I/O burst가 얼마나 길어질지 모르기 때문이다. Context switch가 발생하기 이전에 운영체제는 미리 scheduler를 통해 ready queue에 있는 프로세스 중에서 다음에 실행할 프로세스를 선택한다. 어떤 기준으로 결정된 프로세스를 얼마나 길게 .. 2024. 7. 1. [OS] Synchronization TerminologySynchronization = 동기화 (≠ 병렬): 멀티스레드 환경에서 공유 데이터에 접근할 때 발생하는 문제를 해결하기 위한 메커니즘으로, atomic (indivisible) operation을 사용하여 쓰레드 간의 협력을 보장한다.왜 필요한가? (Policy)OS의 최종 목적은 Multiprogramming이다. 이를 통해 하드웨어 리소스를 최대한 효율적으로 사용함으로써 사용자가 무한대의 자원을 사용하고 있다고 느끼게끔 돕는다. 그러면 더욱이 처리 속도를 높이기 위해 동시에 여러 작업을 실행할 수 있도록 작업이 완료되기 전에 다른 작업을 수행할 수 있도록 비동기 처리하여야하는게 아닐까? 생각이 든다. 아주 타당한 생각이다. 다만, 동기화를 수행해야 하는 특수한 상황이 존재한다.. 2024. 7. 1. 이전 1 다음