OperatingSystem | 운영체제

운영체제가 하는 일, 시스템 콜

gyunnnnnn 2022. 11. 7. 01:24

운영체제란?

  • 하드웨어응용 프로그램 (또는 사람) 사이 중간 역할
  1. 성능 향상을 도모
  2. 사용자 인터페이스 제공

운영체제가 하는 일

프로세스 관리

  • 프로세스에 자원을 할당하고 프로세스의 자원을 회수한다.
  • 운영체제가 자원을 할당하기 시작하면 프로세스가 생성되고 메모리 공간이 할당되고 CPU가 할당된다.
  • 프로세스가 끝나면 운영체제가 자원을 회수하고 할당했던 메모리 공간 등을 회수한다.

주 기억 장치 관리

 

보조 기억 장치 관리

입출력 시스템 관리

운영체제 서비스

유저에게 유용한 기능을 제공

  • 유저 인터페이스
  • 프로그램 실행
  • 입출력 작동
  • 파일 시스템 조작
  • 커뮤니케이션
  • 오류 발견

리소스 공유를 통해 시스템 자체의 효율적인 운영을 보장

  • 자원할당
  • 계산
  • 보호와 보안

System Calls(시스템 콜)

  • 운영체제가 제공하는 서비스에 대한 프로그래밍 인터페이스
  • 일반적으로 고급언어(C, C++)로 작성되어있다.
  • 응용 소프트웨어 개발자들은 API에 따라 프로그램을 설계한다.

시스템 프로그램

  • 프로그램 개발 및 실행에 있어서 편리한 환경을 제공해주는 프로그램

System Call 보다 API를 이용하여 개발하는 것을 선호하는 이유

호환성

  • 어떤 시스템에서든 프로그램이 실행된다.

쉬운 프로그래밍

  • 프로그래머는 System Call의 자세한 부분을 몰라도 된다.
  • 각각의 System Call은 번호가 부여되어있다.
  • 번호들은 테이블의 인덱스로써 시스템 콜 인터페이스에 저장된다.

System Call에서의 인자 전달

간단한 방법

  • 인자를 레지스터로 바로 넘긴다.
  • 속도가 빠르다.

인자가 6개 이상일 경우

  • 인자는 블록의 형태로 메모리에 저장되고, 블록의 주소가 레지스터로 전달된다.
  • 속도는 느리지만, 레지스터의 한정적인 수로 인하여 존재한다.

System Call의 종류

프로세스 컨트롤

  • 프로세스 종료 / 중지 / 적재 / 실행, 속성 획득 / 설정 / 생성 / 종료, 이벤트 기다림 / 알림

파일 관리

  • 파일 생성 / 삭제 / 열기 / 닫기 / 읽기 / 쓰기 / 위치 변경 / 되감기, 파일의 속성 획득 / 설정

장치 관리

  • 장치 요청 / 방출 / 읽기 / 쓰기 / 위치변경

정보 유지

  • 시간과 날짜의 설정 / 획득, 시스템 자료의 설정 / 획득, 프로세스, 파일 장치 속성의 획득 / 설정

통신

  • 통신 연결의 생성 / 제거, 메시지의 송신 / 수신, 상태 정보 전달

System call 호출 과정

  1. System call 호출한다.
  2. 라이브러리를 통해 System call number 전달한다.
  3. interrupt vector table에 들어가서 System call에 해당되는 number를 찾는다.
  4. System call handler를 수행한다.
  5. System call interfaceSystem call table로 들어간다.
  6. 전달받은 number에 알맞은 System call을 수행한다.