티스토리 뷰


  • 참고 도서는 'Operating System Concepts 8th' 입니다. (포스팅 하단부 참고)
  • 개인공부 후 자료를 남기기 위한 목적으로 포스팅합니다. 내용 상에 오류가 있을 수 있습니다.




2.3 시스템 호출 (System Calls)

정식 명칭은 시스템 호출이나, 나는 시스템 콜이라 부르는게 더 익숙하니 시스템 콜이라 언급하겠다.  교수님 멘트에 의하면 운영체제를 공부하는데 있어 중요한 부분이다.

앞에서 운영체제는 커널 모드(Kernel Mode)사용자 모드(User Mode)로 나뉘어 구동된다고 했다.(전체 개요 -2 이중 동작 모드 참고) 운영체제에서 프로그램이 구동되는데 있어 파일을 읽어 오거나, 파일을 쓰거나, 혹은 화면에 메시지를 출력하는 등 많으 부분이 커널 모드를 사용한다. 시스템 콜은 이러한 커널 영역의 기능을 사용자 모드가 사용 가능하게, 즉 프로세스가 하드웨어에 직접 접근해서 필요한 기능을 사용할 수 있게 해준다. 

통상적으로 시스템 콜은 여러 종류의 기능으로 나뉘어져 있다. 각 시스템 콜에는 번호가 할당되고 시스템 콜 인터페이스는 이러한 번호에 따라 인덱스 되는 테이블을 유지된다. 아래 그림은 open() 시스템 콜을 호출 했을 때 운영체제에서 어떻게 처리되는지를 보여준다.


open() 시스템 콜을 호출한 사용자 응용의 처리



필요한 기능이나 시스템 환경에 따라 시스템 콜이 발생할 때 좀 더 많은 정보가 필요할 수 있다. 그러한 정보가 담긴 매개변수를 운영체제에 전달하기 위해서는 대략 3가지 정도의 방법이 있다.


  1. 매개변수를 CPU 레지스터 내에 전달한다. 이 경우에 매개변수의 갯수가 CPU 내의 총 레지스터 개수보다 많을 수 있다.

  2. 위와 같은 경우에 매개변수를 메모리에 저장하고 메모리의 주소가 레지스터에 전달된다. (아래 그림 참고)

  3. 매개변수는 프로그램에 의해 스택(stack)으로 전달(push) 될 수도 있다.

메모리를 사용한 매개변수를 전달


두번째나 세번째 방법의 경우 전달되는 매개변수의 개수나 길이에 제한이 없기 때문에 몇몇 운영체제에서 선호하는 방식이다.





2.4 시스템 콜의 유형

시스템 콜은 다섯 가지의 중요한 범주로 나눌 수 있다. 프로세스 제어, 파일 조작, 장치 조작, 정보 유지보수, 통신과 보호. 여기서는 각 범주들에 어떠한 기능들이 있는지만 간략하게 살펴본다. 자세한 내용을 알고 싶으면 홍릉과학출판사의 Operating System Concepts 8th Edition, 64page 부터 참고하길 바란다.


2.4.1 프로세스 제어(Process Control)

  • 끝내기(end), 중지(abort)
  • 적재(load), 실행(execute)
  • 프로세스 생성(create process)
  • 프로세스 속성 획득과 설정(get process attribute and set process attribute)
  • 시간 대기(wait time)
  • 사건 대기(wait event)
  • 사건을 알림(signal event)
  • 메모리 할당 및 해제 : malloc, free


2.4.2 파일 조작(File Manipulation)

  • 파일 생성(create file), 파일 삭제(delete file)
  • 열기(open), 닫기(close)
  • 읽기(read), 쓰기(write), 위치 변경(reposition)
  • 파일 속성 획득 및 설정(get file attribute and set file attribute)


2.4.3 장치 관리(Devide Management)

  • 장치를 요구(request devices), 장치를 방출release device)
  • 읽기, 쓰기, 위치 변경
  • 장치 속성 획득, 장치 속성 설정
  • 장치의 논리적 부착(attach) 또는 분리(detach)


2.4.4 정보 유지(Information Maintenance)

  • 시간과 날짜의 설정과 획득(time)
  • 시스템 데이터의 설정과 획득(date)
  • 프로세스 파일, 장치 속성의 획득 및 설정


2.4.5 통신(Communication)

  • 통신 연결의 생성, 제거
  • 메시지의 송신, 수신
  • 상태 정보 전달
  • 원격 장치의 부착 및 분리


2.4.5 통신에 대해 부가적인 내용을 추가한다. 일반적인 통신 모델에는 메시지 전달공유 메모리 두가지 가 있다. 메시지 전달 모델에서는 두 프로세스의 통신에 정보 교환을 위한 메시지를 주고 받는다. 공유 메모리 모델에서는 다른 프로세스가 소유한 메모리에 접근을 위해 특정 시스템 콜을 호출한다. 일반적으로 운영체제는 서로 다른 프로세스간의 메모리 접근을 차단한다. 공유 메모리 기법을 사용하기 위해서는 통신하려는 프로세스들이 이러한 차단을 풀어주는데 동의해야한다.




Operating System Concepts

저자
Abraham Silberschatz, Peter B. Galvin, Greg Gagne 지음
출판사
홍릉과학출판사 | 2013-02-15 출간
카테고리
컴퓨터/IT
책소개
『Operating System Concepts』는 9개의 주요...
가격비교


저작자 표시 비영리 변경 금지
신고
프로필사진

Yowu (Yu Yongwoo)

My MBTI type is ENTP. (Of course I do not believe it 100%, but I want to do that) I use Node.js to develop the backend. I use Ubuntu Linux as my development environment, and I love Vim. I am interested in open source and are keen to contribute. I have a bachelor's degree in computer science from Catholic University and now a software engineer at Plating Inc., I spent about 5 years developing and learning, and I am still interested in software development and culture. Recently, I am interested in React, Serverless structure, Domain Design Driven. Sometimes I play drums in the band.