본문 바로가기
CS/운영체제

[OS] 시스템 콜(System Call)

by 개발LOG 2024. 8. 24.
반응형

시스템 콜(System Call)은 운영체제의 커널이 제공하는 서비스에 응용 프로그램이 접근할 수 있도록 하는 인터페이스입니다. 응용 프로그램이 파일 시스템 접근, 네트워크 통신, 메모리 관리 등의 시스템 리소스를 사용하고자 할 때, 직접적으로 하드웨어를 조작하는 대신 시스템 콜을 통해 운영체제에 요청을 하게 됩니다. 이를 통해 운영체제는 안전하고 효율적으로 시스템 리소스를 관리할 수 있습니다.

시스템 콜의 주요 기능

  1. 프로세스 관리: 프로세스의 생성, 실행, 종료 등을 관리합니다. 예를 들어, fork(), exec(), exit() 등의 시스템 콜이 이에 해당합니다.
  2. 파일 조작: 파일 생성, 읽기, 쓰기, 삭제 등 파일 시스템과 관련된 작업을 수행합니다. open(), read(), write(), close() 등이 포함됩니다.
  3. 디바이스 관리: 하드웨어 장치에 대한 접근과 조작을 가능하게 합니다. 예를 들어, 프린터 사용이나 디스크 읽기/쓰기 작업이 여기에 속합니다.
  4. 정보 유지: 시스템 날짜와 시간 설정, 시스템 데이터 통계 등을 조회하고 설정하는 기능을 제공합니다.
  5. 통신: 프로세스 간 통신(IPC) 또는 네트워크 통신을 위한 기능을 제공합니다. socket(), send(), receive() 등이 여기에 해당합니다.
  6. 메모리 관리: 프로세스에 메모리 할당 및 해제를 관리합니다. malloc(), free()와 같은 라이브러리 함수가 내부적으로 시스템 콜을 사용합니다.

시스템 콜의 작동 방식

응용 프로그램이 시스템 콜을 사용하고자 할 때, 다음과 같은 단계를 거칩니다:

  1. 응용 프로그램은 시스템 콜을 호출합니다.
  2. 호출된 시스템 콜은 사용자 모드에서 커널 모드로 전환을 요청합니다.
  3. 운영체제 커널은 요청된 서비스를 수행합니다.
  4. 작업이 완료되면, 커널은 결과를 응용 프로그램에 반환하고 사용자 모드로 다시 전환합니다.
예시:
1) 시스템 콜 발생: 사용자가 응용프로그램(예: PowerPoint) 저장 버튼 클릭으로 OS에게 시스템콜( 사용자 모드에서 실행되는 프로그램이 커널 모드로 제어를 넘기기 위한 메커니즘 ) 발생
2) 커널 모드로 전환: 운영체제는 사용자모드에서 커널모드로 바꿔(이때 운영 체제는 하드웨어 자원에 접근할 수 있게 되며, 예를 들어 파일 시스템을 관리하거나, 데이터를 디스크(SSD 등)에 저장하는 작업을 처리할 수 있게 됨) CPU가 작업중이던 것들을 RAM에서 데이터를 가져와보조기억장치(SSD)에 저장한다.
3) 커널 모드에서 사용자 모드로 반환: 그 후 다시 운영체제는 커널모드에서 사용자모드로 전환하여 응용 프로그램 제어 넘김. 응용 프로그램이 파일 저장 완료되었음을 인식하고 사용자에게 결과 표시

 

 

 

 

반응형

'CS > 운영체제' 카테고리의 다른 글

[OS] 프로세스 스케줄링  (0) 2024.08.29
[OS] 문맥 교환(Context Switch), PCB  (0) 2024.08.24
[OS] 프로세스 상태 전이  (0) 2024.08.24
[OS] 프로세스  (0) 2024.08.24