728x90
반응형
1. 운영체제의 역할
1 ) 응용 프로그램이 요청하는 메모리를 허가하고, 분배한다.
2 ) 응용 프로그램이 요청하는 CPU 시간을 제공한다.
3 ) 응용 프로그램이 요청하는 IO Devices 사용을 허가/제어한다.
운영체제는 사용자 인터페이스를 제공한다.
* 쉘(shell) : 사용자가 운영체제 기능과 서비스를 조작할 수 있도록 인터페이스를 제공하는 프로그램(CLI, GUI)
운영체제는 응용 프로그램을 위해서도 인터페이스를 제공한다.
* API (Application Programming Interface) : 요청서의 집합이라고 보면 좋음
* 보통은 라이브러리 형태로 제공한다.
2. 시스템콜
: 운영체제는 커널모드와 사용자모드로 나뉘어 구동되는데, 이 때 파일 읽기/쓰기/메세지 출력 등의 대부분을 커널모드를 사용한다. 시스템콜은 이러한 커널 영역의 기능을 프로세스가 하드웨어에 직접 접근해서 사용할 수 있게 해준다.
각 시스템 콜에는 번호가 할당되고 시스템 콜 인터페이스는 이러한 번호에 따라 인덱스 되는 테이블을 유지한다.
- 시스템 콜의 종류 : 프로세스 제어, 파일 조작, 장치 관리, 시스템 정보 및 자원 관리, 통신 관련
3. 운영체제를 만들 때 개발 순서
1 ) 운영체제를 개발한다(kernel)
2 ) 시스템 콜 개발
3 ) C API 개발
4 ) Shell 프로그램 개발
5 ) 응용 프로그램 개발
4. 사용자모드와 커널모드
1 ) 사용자 모드 : 응용 프로그램이 사용
2 ) 커널 모드 : OS가 사용
응용 프로그램에서 API를 통해 시스템콜을 요청하면 커널 영역에서 요청을 처리한다.
따라서 커널 모드로 실행하려면, 반드시 시스템 콜을 사용해야한다.
EX ) 코드에서 open(data.txt) 를 실행한다면
- open() 시스템콜 호출
- 커널 모드로 전환
- open() 함수를 처리하는 sys_open() 커널 함수 호출
- 파일 열기로 레벨 연산 수행
- 사용자 모드로 전환
- open() 함수 이후의 프로그램을 계속해서 실행
728x90
반응형
'Computer Science > 운영체제' 카테고리의 다른 글
06. 인터럽트 (0) | 2021.07.31 |
---|---|
05. 프로세스 상태와 스케쥴러 (0) | 2021.07.26 |
04. 스케줄링 알고리즘 (0) | 2021.07.19 |
03. 프로세스 스케쥴링 (0) | 2021.07.18 |
01. 운영체제 역할과 응용 프로그램 (0) | 2021.06.21 |