os introduction
1. 운영체제란?
- 컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층
- 협의의 운영체제(커널): 운영체제의 핵심 부분으로 메모리에 상주하는 부분을 뜻함.
- 광의의 운영체제: 커널 뿐 아니라 각종 주변 시스템 유틸리티를 포함한 개념
2. 운영체제 목적
- 하드웨어의 자원을 효율적으로 관리하는 역할.
- 자원이란?
- 하드웨어자원: 프로세서, 기억장치, 입출력 장치 등
- 소프트웨어 자원: 프로세스, 파일, 메시지 등
- 키워드
- 효율성: 시, 공간의 자원을 최대한 낭비없이,
- 형평성: 효율성만 따지다보면 특정 작업이나 사용자의 명령을 후순위로 두게 된다. 이를 제어하기 위해 형평성을 보장한다.
- os resource sharing
- 메모리 할당 조정
- 유저 인터페이스의 역할
3. 운영 체제의 분류
3.1. 작업의 수
- 단일작업
- ms-dos 프롬프트 상에서는 한 명령의 수행을 끝내기 전에 다른 명령을 수행시킬 수 없음
- ex) 엘리베이터, 과거 벽돌폰 등
- 다중작업
- unix, ms windows 등에서는 한 명령의 수행이 끝나기 전에 다른 명령이나 프로그램을 수행할 수 있음
3.2. 사용자의 수
- 단일 사용자
- 다중 상용자
- unix, nt server
- 보안, 형평성 이슈
3.3. 처리방식
- 일괄처리(batch processing)
- 작업 요청의 일정량을 모아서 한꺼번에 처리
- 작업이 완전 종료될때까지 기다려야 함
- ex) 초기 punch card 처리 시스템
- 시분할(time sharing)
- 여러 작업을 수행할 때 컴퓨터 처리 능력을 일정한 시간 단위로 분할하여 사용
- 일괄 처리 시스템에 비해 짧은 응답 시간을 가짐
- interactive한 방식: 키보드를 칠 때 마다 반응이 보인다는 특성, 하지만 시간의 데드라인이 없어 정확한 시간을 지켜주진 않는다.(예를들어, 멀티테스킹이 많으면 버벅거린다면 조금 느림)
- 실시간(realtime os)
- 정해진 시간 안에 어떠한 일이 반드시 종료됨이 보장되어야 하는 실시간 시스템을 위한 os
- ex) 원자로/ 공장제어, 미사일제어, 반도체장비, 로보트 제어
- 실시간 시스템의 개념 확장
- Hard realtime system(경성 실시간 시스템): 데드라인을 지키지 못한다면 치명적인 결함이 발생하는 시스템
- Soft realtime system(연성 실시간 시스템): 데드라인은 있지만, 조금의 오차가 있다고 해서 큰 손실을 보는 경우가 아닐때, ex) 영화 초당 24프레임을 지켜야하는데, 초당 20프레임으로 퍼포먼스를 낸다면 치명적이진 않다.
4. 용어 정리
- multitasking : 한 컴퓨터가 여러개의 일을 동시에 한다는 의미, cpu가 빠르게 돌면서 각각의 task를 번갈아가면서 일을 수행 -> 행위에 강조
- multiprograming: 메모리 측면을 강조, 여러 프로그램이 메모리에 올라감
- time sharing: cpu에서 번갈아 가며 작업을 수행한다는 부분을 강조
- multiprocess: 여러 프로그램이 동시에 실행된다.
- multiprocesser: cpu가 여러 개 있다는 의미
5. 구조
6. 출처