OS의 하드웨어 관리

- 하드웨어
- 프로세서 : 계산
- 동작 제어
- 단기 기억
- CPU
- 레지스터 + 연산장치 + 제어장치
- 프로세서의 관리도 운영체제의 역할 중 하나임.
- 프로세서에도 메모리가 존재하는 데 단기 기억으로 가장 빠름.
- 메모리 : 저장
- 예) 캐시 : CPU, 메인 메모리(주 기억 장치) : DRAM, 보조기억장치 : HDD, 메모리 카드
- 메인 메모리는 디스크 입출력 병목 현상(I/O bottleneck) 해소.
- 캐시는 메인 메모리의 입출력 병목현상을 해소함.
- 캐시는 일반적으로 하드웨어에서 관리 됨. 필요한 데이터 블록이 캐시에 존재하는 것을
cache hit
, 필요한 데이터 블록이 없는 경우를cache miss
라 함. - 지역성은 캐시 적중률과 밀접함. 여기서 지역성은 공간적 지역성 (참조한 주소와 인접한 주소를 참조하는 특성), 시간적 지역성 (한 번 참조한 주소를 곧 다시 참조하는 특성)을 말함.


for(let i = 0; i < n; i++) { for(let j = 0; j < m; j++) { // A) arr[i][j] or B) arr[j][i] } } A의 경우 지역성으로 인해 캐시 적중이 계속 일어나지만 B의 경우 캐시 miss가 일어남.
- 키보드를 쳤을 때 OS에 알려주는 역할을 하는 인터럽트가 있음.
- 시스템 버스
- 하드웨어들이 데이터 및 신호를 주고 받는 물리적인 통로.
- 프로세서, 메인 메모리, 주변 장치가 시스템 버스로 커뮤니케이션 하는 형태.


운영체제의 역할
- User Interface (편리성)
- CUI (Character user interface)
- GUI (Graphical user interface)
- EUCI (End-User comfortable interface)
- Resource Management (효율성)
- HW resource (processor, memory, I/O devices etc)
- SW reource (file, application, message, signal etc)
- Process and Thread management
- System manangement (시스템 보호)
운영체제의 구분
- 동시 사용자 수
- single-user system (대부분 일반 컴퓨터)
- multi-user system
- 동시 실행 프로세스 수
- single-tasking system
- multi-tasking system (멀티 프로그래밍 시스템)
- 작업 수행 방식 (사용자가 느끼는 사용 환경)
- 예전엔 순차 처리로 진행.
- Batch processing system
- Time-sharing system (시분할 시스템)
- OS가 파일 시스템 및 가상 메모리 관리 시작점.
- 사용자 지향적, 단말기 사용.
- 단점 ) 통신 비용 증가, 보안 문제, 동시 사용자 수가 많아질수록 시스템 부하가 일어나 느려짐. 개인 사용자 체감 속도 저하.
- Distributed procssing system (personal computing, parallel procssing system)
- 신뢰성 향상, cpu가 여러 개 이기에 그 중 하나가 고장나도 성능은 느려질 수 있지만 멈추진 않음.
- Real-time system
- 작업 처리에 제한 시간을 갖는 시스템
- 작업의 종류로는
Hard real-time task(ex. 발전소 제어, 무기 제어)
,Soft real-time task(ex. 동영상 재상)
이 있음.
운영체제의 구조

- 커널
- OS의 핵심 부분 (메모리 상주)
- 가장 빈번하게 사용되는 기능들 담당, 시스템 관리 등
- 쉘
- 사용자 인터페이스 제공
- 사용자의 명령을 입력받아 처리한 후 결과를 출력
- 유틸리티
- 비상주 프로그램
- UI, 문서 편집 도구 등
- 단일 구조
- 계층 구조
- 마이크로 커널 구조
운영체제의 기능
- 메인 기능은 리소스 관리.
- 리소스에는 하드웨어와 소프트웨어가 있음.
- 여기서 프로세스 관리만 조금 더 언급하자면
- 실행을 위해 시스템(커널)에 등록된 작업.
- 시스템 성능 향상을 위해 커너렝서 관리.
- job이 메모리에 할당을 받으면 프로세스가 됨.
- 한마디로 실행 중인 프로그램을 말함.