시스템 호출이 책에도 써있듯이 올바른 말이지만 시스템 콜이 익숙하기에 시스템 콜로 하겠습니다.
- 시스템 콜(system call)은 실행 중인 프로그램과 운영체제 간의 인터페이스로, API라고도 한다.
- 사용자 프로그램은 시스템 콜(System call)을 하여 운영체제의 기능을 제공받는다.
운영체제의 커널모드? 사용자 모드?
1. 커널 모드
프로그램 카운터가 운영체제가 존재하는 부분을 가리키고 있다면, 1) 현재 운영체제의 코드를 수행 중이며 2) CPU가 커널 모드에서 수행 중이라고 한다.
2. 사용자 모드
프로그램 카운터가 사용자 프로그램이 존재하는 메모리 위치를 가리킬 경우, 1) 사용자 프로그램을 수행 중이며 2) CPU가 사용자 모드에서 수행 중이라고 한다.
일반 명령 : 메모리에서 자료를 읽어와서 CPU에서 계산하고 결과를 메모리에 쓰는 일련의 명령들. 모든 프로그램이 수행할 수 있음. (사용자 모드)
특권 명령 : 보안이 필요한 명령으로 입출력 장치, 타이머 등 각종 장치를 접근하는 명령.(커널 모드)
CPU 내에 모드 비트를 두어 두 명령을 수행한다.
사용자 프로그램이 디스크의 파일을 접근하거나, 화면에 결과를 출력하는 등의 작업이 필요한 경우가 있다. 하지만, 이러한 작업은 특권 명령의 수행을 필요로 한다.
이와 같은 경우, "사용자 프로그램은 스스로 특권 명령을 수행할 수 없으므로 운영체제에게 특권 명령의 대행을 요청한다. 이러한 서비스 요청은 시스템 콜"이라고 부른다. (즉, 특권 명령의 대행을 요청하여 사용자 프로그램이 커널 영역의 기능을 수행하게 해준다.)
응용 프로그램이 사용자 수준에서 지원하지 않는 기능을 운영체제의 루틴을 호출하여 제공받는 방법이다.
"시스템 콜은 커널 영역의 기능을 사용자 모드가 사용 가능하게, 즉 프로세스가 하드웨어에 직접 접근해서 필요한 기능을 사용할 수 있게 해준다."
시스템과 상호작용하는 동작은 대개 사용자 수준 프로세스에서는 사용할 수 없으나, 시스템 호출을 하여 운영체제에 서비스를 요청할 수 있습니다. 예를 들어 입출력 프로세스는 특정 영역에 읽거나 작성하는 시스템 호출을 요청하고, 이 요청을 운영체제가 처리합니다.
시스템 호출 방법
- 프로그램에서 명령이나 서브루틴의 호출 형태로 호출하는 방법
- 시스템에서 명령 해석기를 사용하여 대화 형태로 호출하는 방법
운영체제의 시스템 호출 서비스
- 프로세스 제어
- 종료와 취소
- 적재(load)와 실행
- 프로세스 생성과 종료
- 프로세스 속성 획득과 지정
- 대기와 대기 이벤트, 신호 이벤트
- 메모리 할당과 해제
- 파일 조작
- 파일 생성과 삭제
- 파일 읽기와 쓰기, 파일 재배지(reposition)
- 파일 열기(open)와 닫기(close)
- 파일 속성 획득과 지정
- 장치 조작
- 징치 요구와 해제
- 장치 속성 획득과 설정
- 장치 읽기와 쓰기, 재배치
- 논리적 부착이나 장치 제거
- 정보 관리
- 시간과 날짜의 설정과 획득
- 데이터의 설정과 획득
- 프로세스, 파일, 장치 속성의 설정과 획득
- 통신
- 통신 연결의 생성과 제거
- 정보 상태 전달
- 메시지의 송수신
- 원격 장치의 부착 및 제거
'CS > 운영체제' 카테고리의 다른 글
CPU 스케줄링(CPU Scheduling) (0) | 2022.01.18 |
---|---|
교착상태(Dead Lock)란???(feat.기아상태) (0) | 2022.01.17 |
Context Switching(문맥교환)이란? (0) | 2022.01.13 |
동기화(Synchronous)와 세마포어(Semaphore)와 뮤텍스(Mutex) (0) | 2022.01.12 |
Multi Process & Multi Thread ??! (0) | 2022.01.11 |