운영체제란?
- 하드웨어와 응용 프로그램 (또는 사람) 사이 중간 역할
- 성능 향상을 도모
- 사용자 인터페이스 제공
운영체제가 하는 일
프로세스 관리
- 프로세스에 자원을 할당하고 프로세스의 자원을 회수한다.
- 운영체제가 자원을 할당하기 시작하면 프로세스가 생성되고 메모리 공간이 할당되고 CPU가 할당된다.
- 프로세스가 끝나면 운영체제가 자원을 회수하고 할당했던 메모리 공간 등을 회수한다.
주 기억 장치 관리
보조 기억 장치 관리
입출력 시스템 관리
운영체제 서비스
유저에게 유용한 기능을 제공
- 유저 인터페이스
- 프로그램 실행
- 입출력 작동
- 파일 시스템 조작
- 커뮤니케이션
- 오류 발견
리소스 공유를 통해 시스템 자체의 효율적인 운영을 보장
- 자원할당
- 계산
- 보호와 보안
System Calls(시스템 콜)
- 운영체제가 제공하는 서비스에 대한 프로그래밍 인터페이스
- 일반적으로 고급언어(
C
,C++
)로 작성되어있다. - 응용 소프트웨어 개발자들은
API
에 따라 프로그램을 설계한다.
시스템 프로그램
- 프로그램 개발 및 실행에 있어서 편리한 환경을 제공해주는 프로그램
System Call 보다 API를 이용하여 개발하는 것을 선호하는 이유
호환성
- 어떤 시스템에서든 프로그램이 실행된다.
쉬운 프로그래밍
- 프로그래머는
System Call
의 자세한 부분을 몰라도 된다. - 각각의
System Call
은 번호가 부여되어있다. - 번호들은 테이블의 인덱스로써 시스템 콜 인터페이스에 저장된다.
System Call에서의 인자 전달
간단한 방법
- 인자를 레지스터로 바로 넘긴다.
- 속도가 빠르다.
인자가 6개 이상일 경우
- 인자는 블록의 형태로 메모리에 저장되고, 블록의 주소가 레지스터로 전달된다.
- 속도는 느리지만, 레지스터의 한정적인 수로 인하여 존재한다.
System Call의 종류
프로세스 컨트롤
- 프로세스 종료 / 중지 / 적재 / 실행, 속성 획득 / 설정 / 생성 / 종료, 이벤트 기다림 / 알림
파일 관리
- 파일 생성 / 삭제 / 열기 / 닫기 / 읽기 / 쓰기 / 위치 변경 / 되감기, 파일의 속성 획득 / 설정
장치 관리
- 장치 요청 / 방출 / 읽기 / 쓰기 / 위치변경
정보 유지
- 시간과 날짜의 설정 / 획득, 시스템 자료의 설정 / 획득, 프로세스, 파일 장치 속성의 획득 / 설정
통신
- 통신 연결의 생성 / 제거, 메시지의 송신 / 수신, 상태 정보 전달
System call 호출 과정
System call
호출한다.- 라이브러리를 통해
System call number
전달한다. interrupt vector table
에 들어가서System call
에 해당되는number
를 찾는다.System call handler
를 수행한다.System call interface
인System call table
로 들어간다.- 전달받은
number
에 알맞은System call
을 수행한다.