운영체제
사용자가 하드웨어에 접근할 수 있는 유일한 수단
소프트웨어
시스템 소프트웨어 : 운영체제 및 장치 드라이버 → 컴퓨터 자원관리, 응용프로그램 실행
유틸리티 : 컴퓨터의 여러가지 처리 과정을 보조 → 시스템 유지, 성능 개선
응용 프로그램 : 사용자가 만든 프로그램
운영체제의 역할
조정자 : 환경 제공
자원 관리자 : 컴퓨터 자원을 올바른 순서로 할당, 방법 제공
응용프로그램 및 입출력 장치 제어 :
운영체제의 기능
- 자원관리
- 메모리 관리
- 프로세스 관리
- 프로세스와 스레드 스케줄링
- 사용자 프로세스, 시스템 프로세스 생성, 제거
- 프로세스 중지 및 재수행
- 프로세스 동기화
- 프로세스 통신 방법
- 교착상태 방지
- 입출력장치 관리
- 장치 드라이버 사용 - 입출력 장치(하드웨어)와 운영체제 소통
- 파일 관리
- 시스템관리
- 시스템 보호
- 네트워킹
- 명령 해석
운영체제의 서비스
- 부팅
- 사용자 서비스
- 사용자 인터페이스 제공
- 프로그램 실행
- 메모리 적재, 프로세서 시간 할당 = 메모리 할당/해제, 프로세서 스케쥴링
- 입출력
- 파일 시스템 관리
- 네트워킹
- 오류 탐지
- 시스템 서비스
- 자원 할당
- 프로세서 사이클, 메인 메모리, 파일 저장 장치
- 보안
- 시스템 호출
- 실행중인 프로그램과 운영체제 간의 인터페이스 = API
- 핵심 커널 서비스, 통신, 새로운 프로세스 생성/실행, 하드웨어 관련 서비스
운영체제의 유형
- 일괄 처리 시스템
- 여러 작업을 모아 비슷한 작업끼리 한번에 처리하는 것
- 특정 작업을 처리하는데 드는 시간보다 작업을 위한 준비를 하는데 시간이 더 오래 걸리는 경우
- 다중 프로그래밍
- 하나의 프로그램이 입출력 작업 등으로 프로세서를 사용하지 않는 경우 다른 프로그램이 프로세서를 사용할 수 있도록 전환하는 방법
- 시분할 시스템
- 사용 시간 및 규정 시간량을 정해서 프로그램이 프로세서를 점유하는 시간을 정해놓는 것
- 다중 처리 시스템(멀티 프로세싱)
- 분산 처리 시스템