1강 운영체제 소개
운영체제는 컴퓨터를 사용하기 위해 반드시 필요한 소프트웨어 중 하나이다.
컴퓨터가 사용자에게 제공하는 서비스가 다양해지고 편리해지는 만큼 사용자를 위해 컴퓨터 내에서 이루어져야 하는 자원의 관리나 활용이 효율적으로 동작해야 하는데, 운영체제는 그 근간을 이루는 핵심적인 시스템 소프트웨어이다.
1. 운영체제란 무엇인가?
운영체제는 대표적인 시스템 소프트웨어이며 응용소프트웨어와 하드웨어 사이의 매개체 역할을 한다고 볼 수 있다.
컴퓨터 시스템의 자원을 관리하고 컴퓨터 프로그램들이 동작하기 위한 서비스를 제공하는 프로그램들의 모음이다.
⚒️운영체제의 역할
1) 컴퓨터 시스템의 자원관리
- 자원 : 하드웨어 자원, 소프트웨어 자원, 데이터
- ex) 저장장치에서 데이터 읽어오기, 키보드나 마우스제어, 프로그램 동시실행 시 cpu와 메모리 효율적 관리 등
- 컴퓨터 시스템을 효율적으로 운영하는 목적
2) 사용자 지원
- 사용자가 내린 명령을 해석하여 실행하게 함
- 사용자와 하드웨어 사이의 매개체 역할
- 사용자에게 편의성을 제공하는 목적
⚒️ 커널모드와 사용자 모드
1) 커널모드 (슈퍼바이저 모드)
- 하드웨어를 직접 제어할 수 있는 CPU 명령어를 사용할 수 있는 모드
- 운영체제의 커널이 동작함
2) 사용자 모드 (보호 모드)
- 하드웨어를 직접 제어할 수 있는 CPU 명령어를 사용할 수 없는 모드
- 응용 프로그램이 동작함
⚒️커널(kernel)
- 커널 모드에서 동작하는 운영체제의 핵심 요소
- 응용 프로그램과 하드웨어 수준 처리 사이의 가교 역할
- 구성방식 : 일체형 커널, 마이크로 커널
1) 일체형 커널(monolithic kernel)
- 운영체제의 모든 서비스가 커널 내에 포함됨
- 장점 : 커널 내부 요소들이 서로 효율적으로 상호작용함
- 단점 : 한 요소라도 오류가 발생하면 시스템 전체에 장애 발생 가능
- ex) UNIX, Linux
2) 마이크로커널(microkernel)
- 운영체제 요소의 대부분을 커널 외부로 분리
- 메모리 관리, 멀티태스킹, 프로세스 간 통신(IPC) 등 최소한의 요소만 커널 내에 남김
- 장점 : 새로운 서비스를 추가하여 운영체제를 확장하기 쉬움 / 유지보수가 용이하여 안정성이 우수함
- 단점 : 커널 외부 요소들 사이에는 IPC가 필요하여 성능저하 발생
(※ IPC는 커널 내부에 존재하여 커널을 거쳐가야하는 작업이 추가로 발생됨)
⚒️시스템 호출
응용프로그램이 하드웨어에 대한 제어가 필요한 경우 이용
운영체제에 서비스를 요청하는 메커니즘
2. 운영체제의 구성
- 컴퓨터 시스템의 자원의 성격에 따라 구분
1. 프로세스 관리자
2. 메모리 관리자
3. 파일 관리자
4. 장치 관리자
⚒️ 프로세스 관리자
- 프로세스의 생성 및 삭제
- CPU 할당을 위한 스케줄 결정
- 프로세스의 상태를 관리하며 상태 전이 처리
⚒️ 메모리 관리자
- 메모리(주기억장치) 공간에 대한 요구의 유효성 확인
- 메모리 할당 및 회수
- 메모리 공간 보호
⚒️ 장치 관리자
- 컴퓨터 시스템의 모든 장치 관리(하드 디스크, SSD, 키보드, 마우스, 프린터..)
- 시스템 장치의 할당, 작동, 반환
⚒️ 파일 관리자
- 컴퓨터 시스템의 모든 파일 관리
- 저장장치의 공간 관리
- 파일의 접근 제한 관리
3. 운영체제의 유형
1. 일괄처리 운영체제
2. 시분할 운영체제
3. 실시간 운영체제
4. 분산 운영체제
⚒️ 일괄처리 운영체제
- Batch processing : 작업을 모아서 순서대로 처리하는 방식
- 사람(오퍼레이터)이 하던 일을 프로그램이 빠르게 처리하게 되면서 전체적인 작업 처리 속도가 향상됨
- 나중에 들어온 작업은 앞선 작업들이 모두 끝날 때까지 아무런 상호작용 없이 기다려야함(비효율적인 부분 존재)
⚒️ 시분할 운영체제
- Time-sharing : 각 사용자의 프로그램을 한 번에 조금씩 수행하는 방식
- 대화형(interactive) 운영체제라고도 함 (조금만 기다리면 피드백을 받을 수 있음)
- 사용자들은 마치 혼자 컴퓨터를 사용하는 듯한 느낌을 받음
- 응답시간이 일괄처리 운영체제보다 크게 단축됨
(※ 응답시간 : 요청한 시점부터 반응이 시작되는 시점까지의 소요시간)
⚒️ 실시간 운영체제
- Real-time : 원하는 시간 내에 프로그램의 결과를 얻을 수 있는 방식
- 처리결과가 현재의 결정에 영향을 주는 환경에서 사용됨
(ex. 미사일 제어 시스템, 증권제어 관리 시스템)
- 중요한 작업에 대한 처리 기한을 맞추는 것이 중요 : 우선순위가 높은 작업을 우선 처리할 수 있는 기법 활용
⚒️ 분산 운영체제
- 분산 시스템을 관리하기 위한 운영체제
(※ 분산 시스템 : 2개 이상의 컴퓨터 시스템이 네트워크로 서로 연결되어 서로의 자원을 이용하는 시스템)
- 다른 컴퓨터 시스템의 자원을 이용하는 것이 마치 자신의 컴퓨터 시스템에 있는 자원을 이용하는 것처럼 가능해야 함
정리
- 운영체제는 컴퓨터 시스템의 자원을 관리하고 컴퓨터 프로그램이 동작하기 위한 서비스를 제공하는 프로그램들의 모습으로 대표적인 시스템 소프트웨어이다.
- 커널 모드는 하드웨어를 직접 제어할 수 있는 CPU의 명령어를 사용할 수 있는 모드이고, 사용자 모드는 하드웨어를 직접 제어할 수 있는 CPU의 명령어를 사용할 수 없는 모드이다.
- 응용 프로그램은 사용자 모드에서 동작하기에, 하드웨어에 대한 제어가 필요한 경우 시스템 호출을 통해 필요한 서비스를 운영체제에 요청해야 한다.
- 운영체제의 주요 구성요소에는 프로세스 관리자, 메모리 관리자, 장치관리자, 파일 관리자가 있다.
- 운영체제의 대표적인 유형으로는 일괄처리 운영체제, 시분할 운영체제, 실시간 운영체제, 분산 운영체제가 있다.
댓글