운영체제란 무엇인가
컴퓨터시스템의 구성
- 하드웨어 : 기계장비들
- 소프트웨어 : 웹브라우져, 컴파일러, 프로그램 등
- 응용소프트웨어 : 프로그램들
- 시스템 소프트웨어 : 하드웨어와 응용소프트웨어 사이를 연결 매개체, Windows, Linux 등

운영체제
- 대표적인 시스템 소프트웨어
- 컴퓨터 시스템의 자원을 관하고 컴퓨터 프로그램이 동작하기 위한 서비스를 제공하는 프로그램들의 모음
운영체제의 역할
- 컴퓨터 시스템의 자원관리
- 지원 : 하드웨어 자원, 소프트웨어 자원, 데이터
- 예 : 저장장치에서 데이터 읽어오기, 키도브나 마우스 제어, 프로그램 동시 실핼 시 CPU와 메모리를 효율적으로 관리
- 컴퓨터 시스템을 효율적으로 운영하는 목적
- 사용자 지원
- 사용자가 내린 명령을 해석, 실행
- 사용자와 하드웨어 사시의 매개체
- 사용자에게 편의성을 제공
운영체제가 있는 컴퓨터 시스템
- 하드웨어와 응용프로그램 사이에 운영체제 있음
- 운영체제가 컴퓨터 시스템의 자원 제어
커널모드와 사용자모드
-
커널모드(슈퍼바이저모드) : 하드웨어를 직접 제어할 수 있는 CPU 명령어를 사용할 수 있는 모드 -> 운영체제의 커널이 동작
-
사용자모드(보호모드) : 하드웨어를 직접 제어할 수 있는 CPU 명령어를 사용할 수 없는 모드 -> 응용 프로그램이 동작함
-
시스템 호출
- 응용프로그램이 하드웨어에 대한 제어가 피룡한 경우 이용
- 운영체제와 서비스를 요청하는 매커니즘
- 커널모드와 사용자 모드 변화하며 일을 처리


- 커널
- 커널모드에서 동작하는 운영체제의 핵심 요소
- 응용 프로그램과 하드웨어 수준의 처리 사이의 가교 역할
- 커널의 구성방식
- 일체형
- 운영체제의 모든 서비스가 커널내에 포함(커널 = OS)
- 장점 : 커널내부의 요소들이 서로 효율적으로 상호작용을 함
- 단점 : 한 요소라도 오류가 발생하면 시스템 전체에 장애 발생 가능
- 예 : UNIX, Linux
- 마이크로 커널
- 운영체제 요소의 대부분을 외부로 분리
- 메모리 관리, 멀티태스킹, 프로세스간 통신(IPC) 등 최소한의 요소먼 커널 내에 남김
- 장점 : 새로운 서비스를 추가하여 운영체제를 확정하기 쉬움, 유지보수가 용이하여 안정성이 우수함
- 단점 : 커널 외부 요소 사이는 IPC가 필요하여 성능 저하 발생
운영체제의 구성
- 컴퓨터 시스템 자원의 성격에 따라 구분

프로세스 관리자
- 프로세시의 생성 및 삭제
- CPU 할당을 위한 스케줄 결정
- 프로세스의 상태를 관리하며 상태 전의 처리
- 예를들어 브라우저와 문서편집기가 동시에 CPU로 요청을 보낼때, 어떤 일을 먼저 처리할 것인지 정하는 역할

메모리 관리자
- 메모리(주기억정치) 공간에 대한 요구의 유효성 확인
- 메모리 할당 및 회수
- 메모리 공간 보호 : 프로세스의 공간(OS 메모리 공간) 침입으로 부터 보호
장치 관리자
- 컴퓨터 시스템의 모든 장치 관리
- 시스템 장치의 할당, 작동, 반환
파일 관리자
- 컴퓨터 시스템의 모든 파일 관리
- 저장장치의 공간 관리
- 파일의 접근 제한 관리
운영체제의 유형
일괄처리 운영체제
- Batch Processing, 작업을 모아서 순세대로 처리하는 방식
- 사람(오퍼레이터)이 하던 일을 프로그램이 빠르게 처리하게 되면서 전체적인 작업 처리 속도가 향상됨
- 나중에 들어온 작업은 앞선 작업들이 모드 끝날때까지 아무른 상호작용 없이 기다려야함
시분할 운영체제
- Time-sharing, 각 사용자의 프로그램을 한번에 조금씩 수행하는 방식
- 시간간격으로 쪼개서 순서대로 처리
- 대화형 운영체제
- 사용자들은 마치 혼자 컴퓨터를 사용하는 듯한 느낌
- 응담시간이 일괄처리 운영체제보다 크게 단축됨
- 응담시간 : 요청한 시점부터 반응이 시작되는 시접까지의 소요시간
실시간 운영체제
- Rael-time, 원하는 시간 내에 프로그램의 결과를 얻을 수 있는 방식
- 처리결과가 현자의 결정에 영행을 주는 환경에서 사용됨 -> 미사일 제어 시스템, 증권거래 관리 시스템 등
- 중요한 적업에 대한 처리 기한을 맞추는 것이 중요
-> 우선순위가 높은 작업을 우선 처리할 수 있는 기법 활용
분산 운영체제
- 분산 시스템을 관리하기 위한 운영체제
- 분산 시스템 : 2개 이상의 컴퓨터 시스템이 너트워크로 서로 연결되어 서로의 자원을 이용하는 시스템
- 다른 컴퓨터 시스템의 자원을 이용하는 것이 마치 자신의 컴퓨터 시스템에 있는 자원을 이용하는 것처럼 가능해야함