ABOUT ME

Today
Yesterday
Total
  • 시스템 콜(System Call)이란?
    Computer Science/Operating System 2022. 2. 13. 20:54

    시스템 콜(System Call)이란?


    '시스템 콜(System Call)'은 유저 모드에서 커널 영역의 기능을 사용하게 하는 인터페이스다. 즉, 프로세스가 하드웨어에 접근해 필요한 기능을 사용할 수 있게 하는 기능이다. 조금 풀어서 얘기하자면 응용 프로그램에서 운영체제에게 어떤 기능을 수행해달라고 신호를 보내는 것을 보고 '시스템 콜'이라고 한다.

     

     

     

    시스템 콜을 왜 사용하는가?


    운영체제는 유저 모드(User Mode)와 커널 모드(Kernel Mode)가 나누어져 있다. (이를 Dual Mode라고 한다.) 사실 유저 모드는 이름만 어느 정도 유추가 된다. 두 개로 나누어져 있는 운영체제에서 유저가 사용하는 부분이다. 유저 모드는 응용 프로그램을 실행할 때 사용된다. 우리가 컴퓨터를 사용할 때에는 보통 이 부분을 사용한다고 보면 된다. 그럼 커널 영역은 무엇일까? 커널이란 사실상 시스템의 모든 부분을 통제하는 일을 수행한다. 

     

    이렇게 핵심적인 역할을 하고, 또 많은 부분을 담당하는 커널에 사용자가 쉽게 접근하면 어떻게 되겠는가? 운영체제의 핵심적인 부분을 사용자가 마음대로 삭제, 수정할 수 있다면? 정확히 무슨 일이 벌어질지는 몰라도 그게 긍정적일 것 같지는 않다. 그렇기 때문에 당연하게도 유저 모드에서는 커널 모드에 접근하지 못한다. 하지만 잘 생각해보자. 우리는 유저 모드에 있으면서도 유저 모드에서 다루는 영역 이외의 일을 수행하곤 한다. 예를 들어 파일을 읽어오거나 수정하거나 삭제하거나... 이는 어떻게 된 것일까?

     

    이때 사용하는 것이 바로 시스템 콜(System Call)이다. 시스템 콜은 유저 모드에서 커널 모드에 기능을 수행해달라고 신호를 보내는 것이고, 이를 통해 유저 모드에서 접근하지 못하는 커널 모드의 기능을 수행할 수 있도록 한다. 왜? 시스템적인 보안을 위해서!

     

     

     

    시스템 콜 과정


     

     

     

     

    시스템 콜 유형


    프로세스 제어


    • 프로세스 생성(create), 적재(load), 실행(execute), 종료(end), 중지(aboart)
    • 프로세스 속성 가져오기 및 설정하기 (get process attribute & set process attribute)
    • 시간 대기(wait time) 이벤트, 사건 대기(wait event) 이벤트, 사건 알림(signal event) 이벤트, 
    • 메모리 할당 및 해제 (malloc, free)

     

    파일 관리


    • 파일 생성(create), 삭제(delete), 열기(open), 닫기(close)
    • 파일 읽기(read), 쓰기(write), 위치 번경(reposition)
    • 파일 속성 값 확인 및 지정 (get file attribute & set file attribute)

     

    장치 관리


    • 장치 요청(request), 방출(release)
    • 읽기(read), 쓰기(write), 재배치(reposition)
    • 장치 속성 가져오기 및 설정하기
    • 하드웨어 제어 및 상태 정보 얻기 (ioctl)
    • 논리적인 장치 연결(attach) 및 분리(detach)

     

    정보 유지


    • 시스템 날짜 가져오기 및 설정하기 (time)
    • 시스템 데이터 가져오기 및 설정하기 (data)
    • 프로세스, 파일 및 장치 속성 가져오기 및 설정하기 (getpid(), alarm(), sleep())

     

    통신


    • 통신 연결 생성하기 및 삭제하기
    • 메시지 보내기 및 받기
    • 전송 상태 정보
    • 원격장치 연결하기 및 분리하기

     

    보호


    • 파일 권한 얻기 및 설정하기(chmod(), umask(), chown())

     

     

     

    함께 보기


    듀얼 모드: https://codestation.tistory.com/40

     

    듀얼 모드(Dual Mode)란?

    듀얼 모드(Dual Mode)란? 듀얼 모드(Dual Mode, 이중 동작 모드)란 공유된 시스템 자원을 유저 모드(User Mode)와 커널 모드(Kernel Mode), 두 가지로 나눠 사용하는 것을 말한다. 쉽게 말해 운영체제가 수행할

    codestation.tistory.com

     

    'Computer Science > Operating System' 카테고리의 다른 글

    컴퓨터 부팅 과정  (0) 2022.03.21
    듀얼 모드(Dual Mode)란?  (0) 2022.02.13

    댓글

Designed by Tistory.