03. 운영체제 구조
응용프로그램 <=> 운영체제 <=> 하드웨어(시스템 리소스)관계
도서관으로 비유
시민: 응용프로그램
도서관: 운영체제
책: 하드웨어
운영체제 역할
시민은 원하는 책(자원)을 요청
도서관은 적절한 책(자원)을 시민에게 빌려줌
기한이 다 되면 도서관이 해당 책(자원)을 회수함
관계
운영체제는 응용프로그램이 요청하는 메모리를 허가 및 분배
운영체제는 응용프로그램이 요청하는 CPU 시간 제공
운영체제는 응용프로그램이 요청하는 I/O Device 사용을 허가/제어
사용자 , 응용프로그램, 운영체제, 컴퓨터 하드웨어와 관계
운영체제는 사용자 인터페이스 제공
쉘(Shell)
사용자가 운영체제 기능과 서비스를 조작할 수 있도록 인터페이스 제공하는 프로그램
CLI와 GUI 환경 두 종류로 분류
운영체제는 응용 프로그램을 위해서도 인터페이스를 제공
API (Application Programming Interface)
함수로 제공
open()
보통은 라이브러리(library) 형태로 제공
C library
시스템콜
시스템 콜 또는 시스템 호출 인터페이스
운영체제가 운영체제 각 기능을 사용할 수 있도록 시스템 콜이라는 명령 또는 함수 제공
API 내부에서는 시스템콜을 호출하는 형태로 만들어지는 경우가 대부분
API: 각 언어별 운영체제 기능 호출 인터페이스 함수(각 언어별 인터페이스) 시스템 콜: 운영체제 기능을 호출하는 함수
운영체제를 만든다면
운영체제 개발(kernel)
시스템콜
API(library)개발
Shell 프로그램 개발
응용프로그램 개발
정리
운영체제는 응용프로그램과 HD을 관리한다.
사용자 인터페이스를 제공하기 위해 Shell을 제공한다.
응용 프로그램이 운영체제 기능을 요청하기 위해, 시스템 콜을 제공한다.
보통 시스템 콜을 직접사용하기보다는, 해당 시스템 콜을 사용해서
만든 각 언어별 라이브러리(API)를 사용한다.
CPU Protection Rings
CPU도 권한 모드라는 것을 가지고 있다.
사용자 모드 (user mode)
응용프로그램이 사용
커널 모드(kernel mode)
특권 명령어 실행과 원하는 작업 수행을 위한 자원 접근을 가능케 하는 모드
OS가 사용
intel CPU 기준으로 설명(back단)
Ring 3, Level 3: User mode
Ring 0, Level 0: Kernel mode
쉬어가기 Kernel : (견과류, 씨앗의)알맹이, 핵심 Shell : 껍데기
시스템 콜은 커널 모드로 실행
커널 모드에서만 실행 가능한 기능들이 있음
커널 모드로 실행하려면, 반드시 시스템 콜을 사용 해야 함(거쳐야함)
시스템 콜은 운영체제 제공
사용자 모드와 커널 모드
함부로 응용프로그램이 전체 컴퓨터 프로그램을 헤치지 못함
마치 주민등록 등본은 꼭 동사무소 또는 민원 24시에서 특별한 신청서 써야 발급 되는 원리
동사무소 직원분들은 특별한 권한을 가지고, 주빈등록등본 출력 명령을 실행
정리
운영체제는 시스템 콜 제공
프로그래밍 언어 별로 운영체제 기능을 활용하기 위해 시스템 콜을 기반으로 API제공
응용프로그램은 운영체제 기능 필요 시, 해당 API를 사용해서 프로그램 작성
응용프로그램이 실행 되서 운영체제 기능이 필요한 API를 호출하면
시스템 콜이 호출 되서, 커널 모드로 변경되어
OS 내부에서 해당 명령이 실행되고
다시 응용프로그램으로 돌아간다.
Last updated