컴퓨터 구조
- 컴퓨터를 키면? → 운영체제는 Memory에 올라간다.
응용프로그램, 운영체제, 컴퓨터 하드웨어(시스템 리소스) 관계
도서관으로 비유
- 운영체제 : 도서관
- 응용 프로그램 : 시민
- 컴퓨터 하드웨어 : 책
- 운영 체제의 역할
- 시민은 도서관에 원하는 책(자원)을 요청함
- 도서관은 적절한 책을 찾아서, 시민에게 빌려준다.
- 시민이 기한이 다 되면, 도서관이 해당 책을 회수한다.
- 운영체제는 응용프로그램이 요청하는
- 메모리를 허가하고, 분배한다.
- CPU 시간을 제공한다.
- IO Devices 사용을 허가/제어한다.
운영체제는 사용자 인터페이스 제공
-
쉘(Shell) : 이거도 응용 프로그램
- 껍데기
- 사용자가 운영체제 기능과 서비스를 조작할 수 있도록 인터페이스를 제공하는 프로그램
- 쉘은 터미널환경(CLI)와 , GUI 환경 두 종류로 분류된다.
운영체제는 응용 프로그램을 위해서도 인터페이스를 제공
-
API (Application Programming Interface)
- 요청서
- 함수로 제공
- 각 언어별 운영체제 기능 호출 인터페이스 함수
-
보통은 라이브러리(library)형태로 제공
- C library
- 시스템 콜 or 시스템 호출 인터페이스
- 운영체제가 운영체제 각 기능을 사용할 수 있도록 시스템 콜이라는 명령 또는 함수를 제공
- API 내부에는 시스템콜을 호출 하는 형태로 만들어지는 경우가 대부분
- ex)
- open() 파일을 읽어 냄
- POSIX API, 윈도우 API
운영체제를 만든다면?
- 운영체제를 개발한다. (kernel)
- 시스템 콜을 개발
- C API(library) or JAVA API
- Shell 프로그램
CPU Protection Rings
-
CPU도 권한 모드라는 것을 가지고 있다.
- 사용자 모드(user mode)
- Application이 사용
- 커널 모드(kernel mode )
- 특권 명령어 실행과 원하는 작업 수행을 위한 작업 접근을 가능케하는 모드
- OS가 사용
- 커널: 알맹이, 핵심
- 커널 모드에서만 실행 가능한 기능들이 있고(응용 프로그램이) 커널 모드로 실행 하려면 반드시 시스템 콜을 거쳐야 함
- 시스템콜은 OS가 제공
- 응용프로그램이 CPU를 사용하고 싶으면 무조건 시스템콜을 사용해서 커널모드로 CPU를 실행해야 한다.
- 사용자 모드(user mode)
-
함부로 응용프로그램이 전체 컴퓨터 system을 헤치지 못한다.
- 주민등록본은 꼭 동사무소 or 정부사이트에서 특별한 신청서를 써야만 , 발급해주는 것과 같다.
- 동사무소 직원들은 특별한 권한을 가지고 주민등록본 출력 명령을 실행 한다.
- 주민등록본은 꼭 동사무소 or 정부사이트에서 특별한 신청서를 써야만 , 발급해주는 것과 같다.
쉬어가기
- 응용프로그래머
- API를 가지고 응용프로그램을 만든다
- 시스템 프로그래머
- 운영 체제 + shell + API + system call + 하드웨어 를 다룬다.
정리
- 운영체제는 시스템 콜 제공
- 프로그래밍 언어별로 운영체제 기능을 활용하기 위해, 시스템 콜을 기반으로 API제공
- 응용 프로그램은 운영체제 기능 필요시, 해당 API를 사용해서 프로그램을 작성
- 응용 프로그램이 실행되서, 운영체제 기능이 필요한 API를 호출하면, 시스템 콜이 호출되서, 커널 모드로 변경되어 OS 내부에서 해당 명령이 실행되고, 다시 응용프로그램으로 돌아간다.
'취업 준비 > 운영체제' 카테고리의 다른 글
인터럽트 (0) | 2020.12.30 |
---|---|
프로세스 상태와 스케쥴링 (0) | 2020.12.30 |
스케쥴링 알고리즘 (2) | 2020.12.30 |
프로세스 스케쥴링 기초 (0) | 2020.12.24 |
운영체제와 응용 프로그램 (1) | 2020.12.23 |