System Call   시스템 호출, 시스템 콜

(2020-02-15)
1. 시스템 호출프로세스운영체제 커널에게, 어떤 동작의 수행을 요청하는 것

  ㅇ 시스템 호출 API
     - 커널은, 시스템 호출 API를 통해, 광범위한 서비스를 제공하게 됨


2. 시스템 호출에 따른 프로세스 제어권 전달프로그램을 작성할 때 단순히 서브루틴을 호출하는 것처럼 시스템 호출을 함
  ㅇ 시스템 호출을 수행하면 제어권은 사용자 모드에서부터 커널 모드로 옮겨지고,
  ㅇ 시스템 호출을 모두 마치면 제어권은 다시 사용자 프로세스로 복귀하게 됨


3. 시스템 호출의 종류프로세스와 관련된 시스템 호출
     - 프로세스 제어용 
        . exec : 자신을 수행 가능한 다른 프로세스로 대치 수행
        . fork : 현재의 프로세스 이미지를 복사하고 child 프로세스를 만듬
        . wait
     - pipe : 파이프
     - signal : 소프트웨어 인터럽트 또는 시그널
     - exit : 프로세스 종료
     - getuid, setuid ... : 사용자 및 그룹 id 접근

  ㅇ 표준 화일(장치)에 대한 입출력 시스템 호출
     - open( ), close( ), read( ), write( ), lseek( ), create( ), ...

  ㅇ 소켓 기반의 입출력 시스템 호출
     - socket(), bind(), listen(), accept(), connect(), ...


4. Unix/Linux시스템 호출커널 차원에서, 
     - 사용자 프로세스를 위해 서비스하기 위한 여러 함수들을 마련하고 있는데,
     - 이 함수(function)들을 일컬어 시스템 호출 이라고 하며,
     - 이들은, 시스템 헤더파일인 syscall.h, unistd.h 에 정의되어 있음     ☞ 헤더파일 참조

  ㅇ 용도
     - 프로세스 제어, 파일 조작, 디바이스 관리, 시스템 정보 관리, 통신 관리 등

  ㅇ 사용 방법 둘
     - ① libc (표준 C 라이브러리)를 통한 포장 함수(Wrapper Function)에 의해 호출하는 방법
     - ② syscall() 함수를 이용해서 직접 실행시키는 방법

  ㅇ 시스템 콜 例)
     -  exit() : 현재 프로세스의 종료     (소스 위치 : kernel/exit.c)
     -  fork() : 자식 프로세스의 생성     (소스 위치 : arch/i385/kernel/process.c)
     -  read() : 파일 지정자로 부터 읽기  (소스 위치 : fs/read_write.c)
     -  write(): 파일 지정자로 쓰기	  (소스 위치 : fs/read_write.c)
     -  open() : 파일이나 장치열기	  (소스 위치 : fs/open)
     -  close(): 파일 지정자 닫기         (소스 위치 : fs/open.c)


[UNIX 프로세스] 1. 프로세스 2. 시스템 호출 3. init,exec,fork 4. 시그널 5. 좀비
  1.   기술공통
  2.   기초과학
  3.   진동/파동
  4.   방송/멀티미디어/정보이론
  5.   전기전자공학
  6.   통신/네트워킹
  7.   정보기술(IT)
        1. 정보기술
    1.   전산기초
    2.   컴퓨터구조
    3.   프로그래밍
    4.   데이터베이스
    5.   소프트웨어 공학
    6.   운영체제
      1.   운영체제(일반)
      2.   프로세스
      3.   윈도우즈
      4.   UNIX (LINUX)
        1.   UNIX 일반
        2.   UNIX 프로세스
          1.   1. 프로세스
              2. 시스템 호출
              3. init,exec,fork
              4. 시그널
              5. 좀비
        3.   메모리 관리
        4.   IPC
        5.   UNIX 장치
        6.   UNIX 파일시스템
        7.   UNIX 유틸리티
        8.   리눅스(Linux)
    7.   정보보호/보안
    8.   IT 기타기술
  8.   공학일반(기계,재료등)
  9.   표준/계측/품질
  10.   기술경영

 
        최근수정     요약목록     참고문헌