<쉽게 배우는 운영체제 - 조성호> 책을 읽고, 운영체제를 파트별로 나눠 기록하고자 합니다!
정의
: 응용 프로그램의 잘못된 동작으로 컴퓨터가 망가지는 것을 막기 위해 컴퓨터 전체를 관리하고 운영하는 소프트웨어 OS(Operating SYstem)
특징
운영체제 관점에서 바라 본 컴퓨터 구조
커널(kernel)과 인터페이스(interface)로 구분커널(kernel)은 운영체제 핵심 기능의 집합 → 커널을 통해서만 컴퓨터 자원에 접근 가능인터페이스(interface)는 키보드, 모니터, 마우스와 같이 커널에 명령을 내리고, 결과를 출력하는 장치운영체제의 역할과 목표
: 초기 컴퓨터 에니악과 같이 전선을 연결하여 논리회로를 구성한 하드 와이어링 방식의 컴퓨터
: 초기 컴퓨터의 구성을 IC(Integrated Circuit)칩을 통해 작은 크기로 구현하여, 현재의 모습과 유사한 컴퓨터 등장 → 모든 작업을 한꺼번에 처리하는 일괄 작업 시스템: 입력하면 출력이 나오는 형태
: 키보드와 모니터의 개발로 인해 프로그램과 데이터를 입력한 뒤, 결과를 받아오는 일괄 작업 시스템에서 프로그램 진행 도중 입력을 받아 작업의 흐름을 바꾸는 대화형 시스템 등장
: CPU로 여러 작업을 동시에 실행하는 기술 → 여러 작업을 조금씩 처리하여, 작업이 동시에 이루어지는 것'처럼' 보이는 기술 시분할 시스템 → 단, 사용자 메모리를 정리하는 추가 작업이 필요
: 값이 싸고, 크기가 작은 컴퓨터를 하나로 묶어 대형 컴퓨터처럼 성능을 올리는 시스템
→ cf) 인터넷의 등장: 컴퓨터 간의 네트워크 통신 프로토콜 정의 (TCP/IP)
: 작업을 요청하는 클라이언트 컴퓨터와 요청에 응답하는 서버 컴퓨터로 분리
→ 서버에 여러 클라이언트의 요청이 발생할 경우, 서버 과부하 문제 발생
: 서버 과부하를 막을 수 있는 시스템 → 서버는 요청 데이터의 위치 정보만 저장 → 서버를 통한 다운이 아닌 데이터를 보유한 컴퓨터와 요청한 컴퓨터 사이의 데이터 전송 ex) 카카오톡, 블록체인
: 통신 기술의 발달로 데이터 전송 속도 비약적 상승 → 필요한 데이터를 특정 컴퓨터에 저장한 뒤, 통신을 통해 필요할 때마다 사용하는 시스템
운영체제는 커널과 인터페이스로 구성
- 커널(kernel) : 프로세스 관리, 메모리 관리, 저장장치 관리 → 운영체제의 핵심 기능을 구현한 프로그램
- 인터페이스(interface) : 사용자와 응용 프로그램에 인접하여 커널에 명령을 전달하고 실행 결과를 사용자와 응용 프로그램에 전달
커널 내부의 개념
시스템 호출: 커널이 자신을 보호하기 위해 만든 인터페이스
- 사용자의 리소스 직접 접근을 차단
- 리소스 접근은 오직
시스템 호출을 통해서만 가능
→ print(), write()와 같은 정해진 양식의 호출 방법을 통해서 이뤄진다.- API : 시스템 호출과 비슷한 개념으로, 정해진 양식을 사용하여 이미 만들어진 함수를 호출하여 사용하는 방식 → 즉, 운영체제에서 제공하는 함수를 이용하는 것 = 운영 체제의 API를 사용하는 것
디바이스 드라이버: 커널과 하드웨어의 인터페이스를 총칭하여Device Driver (Driver)
→ 운영체제가 지원하지 않는 드라이버는 따로 설치 必 ex) 그래픽 카드, 프린터 등등
프로그램 실행시, 프로세스로 전환→ 위의 역할을 어떤 식으로 구현하는가에 따라 단일형, 계층형, 마이크로 구조 커널로 구분
마이크로 구조 커널