OS는 컴퓨터 자원을 효율적으로 관리하고 user와 hw 간의 효용성을 위해 존재한다고 배웠었다.
그럼 os는 어떤 방식으로 일을 하며 이를 제공해주는지 알아보자.
크게 4가지가 있다.
- Process Management
- Memory Management
- File System Management
- Disk Management
+) System calls
Process Management
프로그램은 두 가지로 나뉘며 os는 이 두가지 프로그램을 관리한다.
- user program: 사용자가 작성한 프로그램으로, 응용프로그램, 유틸리티 등을 말한다. 사용자 프로그램은 운영 체제와 독립적으로 실행되며 사용자의 요청에 따라 실행되어 작업을 수행한다.
- system program: 운영 체제가 제공하는 프로그램으로, 시스템의 기능을 제어하고 os 자체를 지원한다. 디바이스 드라이버, shell, file servers, name serbers, 컴파일러 등이다.
실행되는 프로세스들을 encapsulate하여 보호한다.
- 프로세스는 실행 중인 프로그램의 인스턴스다. (하나의 프로그램에는 여러 프로세스들이 존재하는 경우가 있다.) os는 프로세스의 실행을 위해 리소스(메모리, cpu, 시간, 파일 등)을 할당하여 실행시킨다. 이때 프로세스는 the complete execution context에 포함되어 os에 의해 관리된다.
- os는 프로세스를 만들고, 삭제하고, 잠시 중단/재개하고 스케줄링을 한다.
- 또한 프로세스 내부에서 synchronization, handle deadlock을 지원한다.
💡 handle deadlock: 프로세스가 서로 필요로 하는 자원을 가지고 서로 기다리는 상황으로, 해당 자원을 소유하고 있는 프로세스들이 무한정 기다리며 작업을 수행하지 못하는 상태. os는 이러한 데드락 상황을 처리하고 자원의 효율적 관리와 시스템의 안정성을 유지한다.
Memory Management
각 프로세스는 자신만의 메모리 공간을 가지며, 다른 프로세스와는 독립적으로 실행된다. 이때 os는 독자적인 메모리 공간을 data, bss, stack 공간 할당해준다.
또한 프로세스는 실행 중에 반드시 main memory에 위치해있다.(프로그램은 파일 시스템에 저장되어 실행하면 메모리에 올라간다.)
File system Management
디스크는 서버가 다운되어도 내용을 저장하고 있지만, 직접적으로 활용하기(물리적인 장치를 사용하지 않고 활용하는 것)는 힘들다.
따라서 파일시스템이라는 저장장치에 파일과 디렉토리를 저장하여 사용한다.
파일시스템의 파일은 읽기/쓰기가 가능한 장기기억장치이다. 파일 시스템은 파일 or 다른 디렉토리를 포함하는 디렉토리를 갖는다.
💡Quotas(쿼터): 운영체제에서 디스크 공간, 파일 수, 네트워크 대역폭 등의 자원 사용량을 제한하고 관리하는 기능. 디스크 쿼터는 특정 사용자/그룹이 사용할 수 있는 디스크 공간의 최대 양을 제한한다.
Disk Management
디스크는 파일 시스템 아래에 있는 실제 하드웨어다.
모든 유저의 데이터와 프로그램을 대량으로 저장하고 있으며 OS는 이를 관리한다.
os는 low level에서 디스크 공간을 관리한다.
- 사용된 공간 추적
- 사용되지 않은(사용 가능한) 공간 추적
- "bad blocks" 추적
low-level의 디스크 기능을 다룬다.
- Scheduling of disk operations
- Head movement
💡 Head movement
디스크의 물리적인 특성상, 데이터에 접근하기 위해 디스크 헤드(head)가 디스크의 표면을 움직여야 한다. 일반적으로 데이터는 디스크에 불규칙하게 저장되기 때문에 디스크 헤드는 자주 이동한다. 따라서 이 Head movement를 최소화하기 위해 디스크를 관리하는 것이 필요하고, 이를 os가 수행한다. Os는 파일 시스템에서 데이터의 배치를 결정하고, 파일을 저장할 때 최적의 위치를 선택하여 HM을 줄이는 방법을 취한다.
이러한 움직임을 관리하는 것 뿐만 아니라 디스크의 데이터를 효율적으로 읽고 쓰기 위해 디스크의 데이터를 sector/block 단위로 관리한다.
디스크 관리와 파일 시스템 관리 간의 세부 사항 확인
Reference
한국항공대학교 컴퓨터 운영체제 및 실습 강의
'CS > OS' 카테고리의 다른 글
[CS] 비트마스킹 | 비트 연산자 | 비트마스킹과 집합 (0) | 2023.07.19 |
---|---|
[OS] CPU Scheduling | preemptive & non-preemptive | 스케줄링 알고리즘 | 스케줄러 알고리즘 평가 (0) | 2023.05.11 |
[OS] 프로세스 | 프로세스의 상태 | PCB | context switching (0) | 2023.04.07 |
[OS] 컴퓨터 시스템 구조 | 저장장치 계층 | 프로그램 실행 과정 | 커널 | 동기식/비동기식 IO | DMA (0) | 2023.04.06 |
[OS] Mode bit | Device Controller | Interrupt (0) | 2023.03.17 |