1. 운영체제 (Operating System)
ㅇ 컴퓨터의 동작 전반을 운영/제어하는 소프트웨어
ㅇ 운영체제 例) Unix, Linux, 윈도우즈 등
2. 운영체제의 역사
ㅇ 최초의 컴퓨터에는 운용체제가 없었음
ㅇ 최초의 운용체제는 50년대 IBM701에 탑재되어 구현
ㅇ 다중 프로세스 환경 개념은 1960년대에 출현하기 시작
ㅇ 1970년대는 실시간,시분할,일괄처리가 모두 가능한 다중모드 시분할 시스템이 가능
ㅇ 1980년대는 메인프레임 시대에서 퍼스널컴퓨터(PC) 및 워크스테이션 시대로 전환
ㅇ 1990년대 이후는 분산처리, 소형화의 시대
※ (운영체제 유형별 발전과정)
- 작업별 순차 처리 → 단순 배치 처리 → 다중 프로그램 배치 처리 → 시분할 시스템
→ 분산처리 시스템 → 다중 처리 시스템
3. 운영체제의 목적
ㅇ 편리한 사용 환경 제공
- 컴퓨터의 능력을 사용자가 편리하고 효율적으로 활용할 수 있도록 하여 줌
ㅇ 시스템 자원의 효율적 관리
- 하드웨어 등이 높은 성능을 발휘할 수 있도록 관리하는 시스템
- 例) 프로세서, 메모리, 디스크, 키보드, 마우스, 모니터, 네트워크, 스피커, 마이크, …
4. 운영체제의 주요 역할/기능
ㅇ 컴퓨터 사용자와 컴퓨터 하드웨어 간의 중개자 역할
ㅇ 하드웨어 및 소프트웨어 리소스(자원)를 할당/관리하는 자원 관리자 역할
- 프로세스 관리 : 작업중인 실행 단위로써의 프로세스들을 효과적으로 병행 실행케 함
- CPU 스케줄링 : CPU를 프로세스 간에 교환함으로써(CPU 다중화), 보다 생산적(효율적)으로 만듬
- 메모리 관리 : 실행중인 프로그램(프로세스)들에 대해, 메모리의 할당/관리/공유
- 파일시스템 관리 : 컴퓨터 내 수많은 파일을 손쉽게 다룰 수 있게 함
- 대용량 저장장치 관리
- 입출력 시스템 관리
- 통신 지원
- 사용자 인터페이스 제공 등
ㅇ 장치와 프로그램의 제어 관리자 역할
- 어떤 프로그램이 언제 실행할지를 결정하는 등
ㅇ 컴퓨터 시스템의 보호 및 보안 등
5. 운영체제의 동작방식/특징
ㅇ 운영체제가 하드웨어와 직접 상호작용함으로써,
- 사용자 및 응용 프로그램에 공통적인 서비스를 제공
ㅇ 공통 실행 환경 기반 제공
- 하드웨어 각각의 특이성으로부터,
- 프로그램을 독립시켜, 프로그램이 실행될 수 있는 공통 기반 환경을 제공하여 줌
ㅇ 컴퓨터 주기억장치에 상주
- 다양한 기능 수행을 위해 항상 메모리 내에 존재해야 함
ㅇ 컴퓨터 내 자원을 공유케 함
- (자원 : CPU, 메모리 공간, I/O 장치, 저장장치 등 )
ㅇ 결과적으로, 높은 성능 유지에 도움을 줌
6. 다중 프로세스 환경 (멀티 프로세싱 환경)
ㅇ 다중 프로세스
- 다중 프로세스 환경이 가능한 운영체제에서는,
- 각 프로세스가,
. 마치 자신이 유일한 프로세스라는 환상을 갖으며,
. 자신의 레지스터 및 메모리를 가지게 되며,
. I/O 및 디바이스에 대한 제어는, 전적으로 운영체제에 의존하게 됨
ㅇ 다중 처리 지원
* (메모리 영역 보호)
- 운영체제 및 사용자 프로세스들 모두는 컴퓨팅 자원을 공유하므로,
. 메모리 공간을 커널 공간 및 사용자 공간 각각 별도로 접근,사용토록 구분하여 운영
- 구현 방식
. 하드웨어적으로, 모드 비트(mode bit)의 사용
. 소프트웨어적으로, 운영체제 만 사용하는 특권 명령을 지정 운영
- 특권 명령 (Privileged Instruction)의 例)
. 커널 모드로의 전환 명령
. 입출력 제어
. 타이머 관리
. 인터럽트 관리 등
* (동기화 처리)
- 다중 프로세스나 스레드가 동시에 실행될 때 공유 자원을 안전하게 사용하고,
순서 보장 및 일관성을 유지하기 위한 메커니즘
- 동기화 문제 예 : 경쟁 조건, 교착 상태, 기아 상태 등
* (프로세스 스케줄링), (가상 메모리), (멀티 스레딩) 등