티스토리 뷰
패스트 캠퍼스 강의를 듣고 정리합니다.
운영체제 큰 그림
응용프로그램, 운영체제, 컴퓨터하드웨어 관계
- 운영체제는 응용프로그램이 요청하는 메모리를 허가하고, 분배한다.
- 운영체제는 응용프로그램이 요청하는 CPU시간을 제공한다.
- 운영체제는 응용 프로그램이 요청하는 IO Devices 사용을 허가/제어 한다.
쉘(Shell) - 사용자 인터페이스
- 사용자가 운영체제 기능과 서비스를 조작할 수 있도록 인터페이스를 제공하는 프로그램이다.
- 쉘은 터미널 환경(CLI)과, GUI 환경 두 종류로 분류된다.
시스템 콜 - 응용프로그램을 위한 인터페이스
- 시스템 콜 또는 시스템 호출 인터페이스라고 불린다.
- 운영체제의 각 기능을 사용할 수 있도록 시스템 콜이라는 명령 또는 함수를 제공한다.
- 보통 시스템 콜을 직접 사용하기 보다는, 해당 시스템 콜을 사용해서 만든 각 언어별 라이브러리(API)를 사용한다
CPU Protection Rings
-
CPU는 권한 모드를 갖고 있다.
-
사용자 모드(user mode by applications)
응용 프로그램이 사용
-
커널 모드(kernel mode by OS)
특권 명령어 실행과 원하는 작업 수행을 위한 자원 접근을 가능하게 하는 모드
-
-
시스템콜은 커널 모드로 실행된다.
Mode가 나눠져 있는 이유
운영체제는 사용자와 하드웨어와 소프트웨어 리소스를 공유하기 때문에 한 프로그램이 다른 프로그램, 운영체제를 실행하는 오작동이나 결함이나 악성행동으로부터 데이터와 기능을 보호해야하기 때문이다.
커널(Kernel) - 운영체제
- 커널은 컴퓨터의 운영체제의 핵심이 되는 컴퓨터 프로그램이다.
- 시스템의 모든 것을 완전히 통제하고, 운영체제의 다른 부분 및 응용프로그램 수행에 필요한 여러가지 서비스를 제공한다.
- 커널의 역할은 보안, 자원관리, 하드웨어 추상화다.
- 즉, 운영체제는 컴퓨터 하드웨어와 응용프로그램을 관리한다.
정리
- 운영체제는 시스템 콜을 제공한다.
- 프로그래밍 언어별로 운영체제 기능을 활용하기 위해, 시스템 콜 기반으로 API를 제공한다.
- 응용프로그램은 운영체제 기능 필요시, 해당 API를 사용해서 프로그램을 작성한다.
- 응용프로그램이 실행되서, 운영체제 기능이 필요한 API를 호출하면, 시스템 콜이 호출되서, 커널모드로 변경되어 OS내부에서 해당 명령이 실행되고, 다시 응용프로그램으로 돌아간다.
'개발 > 상식' 카테고리의 다른 글
[운영체제] 7. 프로세스간 커뮤니케이션 (0) | 2019.12.19 |
---|---|
[운영체제] 6. 프로세스 구조 (0) | 2019.12.19 |
[운영체제] 5. 인터럽트 (0) | 2019.12.19 |
[운영체제] 4. 프로세스 상태와 스케쥴링 (0) | 2019.12.19 |
[운영체제] 3. 프로세스 스케쥴링 알고리즘 (0) | 2019.12.19 |
[운영체제] 2. 프로그램 처리 방법들 (0) | 2019.12.19 |