실행할 프로그램에 필요한 자원을 할당하고, 프로그램이 올바르게 실행되도록 돕는 프로그램
https://www.cs.uic.edu/~jbell/CourseNotes/OperatingSystems/2_Structures.html
Note. 운영체제가 제공하는 서비스 중 커널에 포함되지 않는 서비스
- 사용자 인터페이스: 사용자가 컴퓨터와 상호작용할 수 있는 통로 (커널에 포함되지 않는 서비스)
- 그래픽 유저 인터페이스(GUI)
- 커맨드 라인 인터페이스(CLI)
응용 프로그램이 실행 과정에서 HDD에 접근하여 데이터를 저장하려면 운영체제에 도움을 요청해야 하고, 운영체제는 커널 영역 내의 HDD에 데이터를 저장하는 코드를 실행하여 응용 프로그램의 작업을 대신 수행
이러한 운영체제의 문지기 역할은 이중 모드로써 구현됨
이중모드: CPU가 명령어를 실행하는 모드를 크게 사용자 모드와 커널 모드로 구분하는 방식
시스템 호출(시스템 콜): 운영체제 서비스를 제공받기 위한 요청
사용자 모드로 실행되는 프로그램 커널 모드 전환
종류 | 시스템 호출 | 설명 |
---|---|---|
fork() | 새 자식 프로세스 생성 | |
프로세스 관리 | execve() | 프로세스 실행 (메모리 공간을 새프로그램의 내용으로 덮어씌움) |
exit() | 프로세스 종료 | |
waitpid() | 자식 프로세스가 종료할 때까지 대기 | |
open() | 파일 열기 | |
파일 관리 | close() | 파일 닫기 |
read() | 파일 읽기 | |
write() | 파일 쓰기 | |
stat() | 파일 정보 획득 | |
chdir() | 작업 디렉터리 변경 | |
디렉터리 관리 | mkdir() | 디렉터리 생성 |
rmdir() | 비어 있는 디렉터리 삭제 | |
파일 시스템 관리 | mount() | 파일 시스템 마운트 |
umount() | 파일 시스템 마운트 해제 |
ex) 응용 프로그램이 HDD에 데이터를 저장하는 작업을 수행
step 1. 응용 프로그램은 HDD에 데이터를 저장하는 시스템 호출을 발생시켜 커널모드로 전환
step 2. 운영체제 내의 'HDD에 데이터를 저장하는 코드'를 실행함으로써 HDD에 접근
step 3. HDD에 접근이 끝났다면 다시 사용자 모드로 복귀하여 실행을 지속
https://data-flair.training/blogs/system-call-in-os/
참고문헌
https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=299014282&start=slayer