1. 운영체제란
1. 운영체제
- 정의 : 하드웨어 위에 설치되어, 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층
- 하는 일 : 컴퓨터 시스템의 자원을 효율적으로 관리해준다.
- 프로세서, 기억장치, 입출력장치 등을 효율적으로 관리하는 것
- 실행중인 프로그램들에게 CPU 적절히 분배해서 할당해주자
- 실행중인 프로그램들에게 메모리 공간 적절히 분배해서 할당해주자
- 적절히 분배는 어떻게? 공평한게 효율적인가?
- NO! 효율적이지만, 굶는(starvation)은 없게끔 형평성 있게 ‘운영체제'가 해준다.
- CPU스케줄링, 메모리관리, 입출력관리 등
2. 운영체제 분류
1. 동시 작업 가능 여부
- 단일 작업 (single tasking)
- 한 번에 하나의 작업만 처리
- ex) MS-DOS 프롬포트 상에서는 한 명령의 수행을 끝내기 전에 다른 명령을 수행시킬 수 없음
- 다중 작업 (multi tasking)
- 동시에 두 개 이상의 작업 처리
사실 동시에 처리되는 것처럼 보이는거고, 두 개 이상의 작업이 실행될 수 있음을 의미
- 다수의 작업을 중앙처리장치(CPU)와 같은 공용자원을 나누어 사용하는 것
- UNIX, MS Windows 등에서는 한 명령의 수행이 끝나기 전에 다른 명령이나 수행을 할 수 있음
2. 사용자 수
- 단일 사용자 (single user)
- ex) MS-DOS, MS Windows(일반적인 가정 컴퓨터)
- 다중 사용자 (multi user)
- 한 컴퓨터에 여러 user가 접근 → 보안 필요
- ex) UNIX, NT Server
3. 처리 방식
- 일괄 처리 (batch processing)
- 작업 요청을 모아놨다가 일정 시간이 지나면 한번에 수행
- 작업이 완전히 종료될 때까지 기다려야 함
- 지금 안씀 ~.~
- 시분할 방식
- 여러 작업을 수행할 때 컴퓨터 처리 능력(CPU)을 시간 단위로 분할하여 사용
- 일괄 처리 방식에 비해 응답 시간이 짧다.
- interactive한 작업에 효율적이다. (사용자와의 상호작용이 있어야 하는 경우 응답 시간이 짧아진다.)
- 일반적인 범용 OS(사용자를 위한)
- 실시간 (realtime OS)
- 정해진 시간 안에 어떠한 일이 반드시 종료됨이 보장되어야 함
- 데이터가 발생한 시점에서 필요한 계산처리를 즉석에서 처리하여 그 결과를 리턴한다.
- ex) 원자로/공장 제어, 미사일 제어, 반도체 장비, 로보트 제어