사용자 프로그램이 운영 체제의 서비스를 요청할 때, 예를 들어 파일을 열거나 네트워크 통신을 하거나 새로운 프로세스를 생성하려고 할 때, 시스템 콜을 사용합니다.
- 프로세스 관리: 프로세스 생성, 종료, 스케줄링 등과 같은 작업 담당
- 파일 조작: 파일 열기, 읽기, 쓰기 등의 작업 담당
- 장치 관리: 장치 드라이버와 통신하여 하드웨어 장치 관리
- 정보 관리: 시스템의 상태 정보 관리 제공
- 통신: 프로세스 간 통신(IPC) 또는 네트워크 통신 담당
- 보호
- 끝내기(exit), 중지 (abort)
- 적재(load), 실행(execute)
- 프로세스 생성(create process) - fork
- 프로세스 속성 획득과 속성 설정
- 시간 대기 (wait time)
- 사건 대기 (wait event)
- 사건을 알림 (signal event)
- 메모리 할당 및 해제
- 파일 생성 / 삭제 (create, delete)
- 열기 / 닫기 / 읽기 / 쓰기 (open, close, read, wirte)
- 위치 변경 (reposition)
- 파일 속성 획득 및 설정 (get file attribute, set file attribute)
- 하드웨어의 제어와 상태 정보를 얻음 (ioctl)
- 장치를 요구(request device), 장치를 방출 (relese device)
- 읽기 (read), 쓰기(write), 위치 변경
- 장치 속성 획득 및 설정
- 장치의 논리적 부착 및 분리
- getpid(), alarm(), sleep()
- 시간과 날짜의 설정과 획득 (time)
- 시스템 데이터의 설정과 획득 (date)
- 프로세스 파일, 장치 속성의 획득 및 설정
- pipe()
- shm_open()
- mmap()
- chmod()
- umask()
- chown()
운영체제도 컴퓨터 전원이 켜지면 메모리에 올라가야한다.
-> 규모가 큰 운영체제를 전부 다 메모리에 올리면 메모리 공간 낭비가 심하다.
-> 운영체제의 항상 필요한 부분만 메모리에 올려놓고 다른 부분은 필요할 때만 메모리에 올린다.
-> 메모리에 항상 올라와 있는 운영체제가 "커널"이다.