728x90
CPU 스케줄링
- FCFS(First-Come First-Served)
- 선입선출
- 효율성 측면에서 좋지 않음
- SJF(Shortest-Job-First)
- CPU 사용시간이 가장 짧은 프로세스를 먼저 스케줄링
- (+)최소 평균 대기시간을 보장함
- (-)Starvation(기아 현상) 발생 가능
- RR(Round Robin)
- 각 프로세스는 동일 크기의 CPU 할당시간을 가짐(n-1)
- CPU 스스로 자원을 뺏을 순 없기 때문에 하드웨어적 지원을 받음
- 대기시간이 프로세스의 CPU 사용시간에 비례
메모리 관리
- 디스크(파일시스템) : 실행파일 보관(비휘발성)
- 가상메모리 : 프로세스 각각에 대한 독자적인 메모리 공간 (논리적인 주소 할당)
- 메모리 : 프로세스 작업(휘발성)이 일어남 (물리적인 주소 할당)
- 디스크(스왑영역) : 메모리의 연장공간이며 메모리 자원을 사용하지 않는 경우 저장되는 공간(비휘발성이나 의미가 없기에 전원이 꺼지면 자동으로 지워버림)
- 자원 단위 : 페이지(Page)
- 메모리 관리 : 미래를 모르는 상황에서 계속 사용할 페이지는 유지하고 사용하지 않을 페이지를 없애는 것이 주안점(효율성)
- LRU : 가장 오래 전에 참조 페이지 삭제 - 참조횟수를 고려하지 않음
- LFU : 참조횟수가 가장 적은 페이지 삭제 - 최근 히스토리를 고려하지 않음
디스크 스케줄링
- 헤드의 이동거리를 줄이는 방법
- 디스크 접근 시간(Access time)의 구성
- 탐색시간(Seek time) : 헤드를 해당 트랙(실린더)으로 움직이는데 걸리는 시간
- 회전지연(Rotational latency) : 헤드가 원하는 섹터에 도달하기까지 걸리는 시간
- 전송시간(Transfer time) : 실제 데이터의 전송 시간
- 디스크 스케줄링(Disk Scheduling)
- seek time 최소화가 목표
- seek time = seek distance
- FCFS(First-Come First-Served)
- 효율성의 문제
- SSTF(Shortest Seek Time First)
- Starvation 문제
- SCAN
- 헤드가 디스크의 한쪽 끝에서 다른쪽 끝으로 이동하며 가는 길목에 있는 모든 요청을 처리한다
- 다른 한쪽 끝에 도달하면 역방향으로 이동하며 오는 길목에 있는 모든 요청을 처리하며 다시 반대쪽 끝으로 이동한다.
- 엘리베이터 스케줄링과 동일
저장장치 계층구조와 캐싱(caching)
- Speed(속도), Cost(비용), Volatility(휘발성)의 상관관계가 존재
- Primary = CPU가 직접 접근 가능, Secondary : CPU가 직접 접근 불가
- 동일한 데이터를 재사용할 때 caching된 데이터를 활용 -> 속도차이 극복
플래시메모리
- 반도체장치(하드디스크: 마그네틱)
- NAND형(스토리지), NOR형(임베디드 코드저장용)
- 특징
- Nonvolatile
- Low power consumption
- Shock resistance
- Small size
- Lightweight
- (-)쓰기 횟수 제약
- (-)데이터가 시간이 지남에 따라 변질될 가능성이 있음(전하의 양으로 0,1 구분하는 것이기 때문에 전하가 일정수준 빠져나가면 안 읽힐 수 있음) -> 골고루 사용되도록, 시간이 지나면 알아서 다른 곳에 복제되도록 하는 등 소프트웨어적으로 해결하고자 함
- 사용형태
- 휴대폰, PDA 등 임베디드 시스템 구성용
- USB용 메모리 스틱
- 디지털카메라 등의 SD카드, CompactFlash, Smart Media card
- 모바일 장치 뿐 아니라 대용량 시스템에서 SSD(Solid State Drive)란 이름으로 하드디스크 대체 시도
운영체제의 종류
- 서버용, PC용, 스마트디바이스용 운영체제
- 공개 소프트웨어(Open Source Software) : Linux, Android - 소스코드가 공짜(내용물이 공짜라는 건 아님)
728x90
'프로그래밍공부(Programming Study) > 운영체제(OS)' 카테고리의 다른 글
멜트다운(Meltdown)과 스펙터(Spectre): CPU 보안 취약점의 이해 (0) | 2024.09.19 |
---|---|
하이퍼스레딩(Hyper-Threading)이란? 개념, 특징, 장단점, 그리고 실제 사례 (1) | 2024.09.19 |
macOS에서 하드웨어 정보 확인하는 법 (0) | 2024.09.19 |
[운영체제]1. 운영체제란 (0) | 2023.03.26 |
메모리 계층과 메모리 관리 (0) | 2022.07.27 |
댓글