패스트캠퍼스 올인원 패키지 - 컴퓨터 공학을 보고 정리하는 용도의 포스팅입니다.
학습목표
- 시스템 콜의 개념 및 원리와 배경에 대해 이해하자
응용 프로그램, 운영체제, 컴퓨터 하드웨어(시스템 리소스)관계
운영체제의 전반적인 구조
- 운영체제는 응용 프로그램이 요청하는 메모리를 허가하고, 분배
- CPU시간을 제공
- IO Devices 사용을 허가 하거나 제어한다.
나와 비슷한 입문자 내지는 컴알못을 위해 친절히 도서관에 비유해주신걸로 보자면ㅠㅠ
- 운영체제 = 도서관
- 응용 프로그램 = 시민
- 컴퓨터 하드웨어 = 책
- 시민은 도서관에 원하는 책(자원)을 요청
- 도서관은 적절한 책(자원)을 찾아서, 시민에게 빌려줌
- 기한이 다 되면, 도서관이 해당 책(자원)을 회수함
비유는 그저 이해하기 쉽게 하기 위한 비유일뿐,
실질적인 구조를 외워야 한다.
운영체제는 사용자 인터페이스 제공
쉘(Shell)
- 사용자가 운영체제 기능과 서비스를 조작할 수 있도록 인터페이스를 제공하는 프로그램
- 터미널 환경(CLI)과, GUI 환경 두 종류로 분류
- 사용자의 요청을 받아서 운영체제에 넘겨줌
- 사용자와 OS 사이의 커뮤니케이션 창구 역할
운영체제는 응용 프로그램을 위해서도 인터페이스를 제공
API(Application Programming Interface)
- 함수로 제공
- open()
보통은 라이브러리(library) 형태로 제공
- C library
응용 프로그램 안의 프로그래밍 언어를 통해 운영체제 함수로 제공하고
보통은 그 함수들을 묶어서 라이브러리 제공.
시스템 콜
- 시스템 콜 또는 시스템 호출 인터페이스
- 운영체제가 각 기능을 사용할 수 있도록 시스템 콜 명령(혹은 함수)을 제공
- API 내부에는 시스템콜을 호출하는 형태로 만들어지는 경우가 대부분
운영체제를 만든다면 아래와 같은 순서
- 운영체제를 개발(kernel)
- 시스템 콜 개발
- C API(library) 개발
- Shell 프로그램 개발
- 응용 프로그램 개발
정리
- 운영체제는 컴퓨터 하드웨어와 응용 프로그램을 관리한다.
- 사용자 인터페이스를 제공하기 위해 쉘 프로그램을 제공한다.
- 응용 프로그램이 운영체제 기능을 요청하기 위해 운영체제는 시스템 콜을 제공한다.
- 보통 시스템 콜을 직접 사용하기 보다는 해당 시스템 콜을 사용해서 만든 각 언어별 라이브러리(API)를 사용한다.
Comments