반응형

시스템 콜(System Call)은 운영체제의 커널이 제공하는 서비스에 응용 프로그램이 접근할 수 있도록 하는 인터페이스입니다. 응용 프로그램이 파일 시스템 접근, 네트워크 통신, 메모리 관리 등의 시스템 리소스를 사용하고자 할 때, 직접적으로 하드웨어를 조작하는 대신 시스템 콜을 통해 운영체제에 요청을 하게 됩니다. 이를 통해 운영체제는 안전하고 효율적으로 시스템 리소스를 관리할 수 있습니다.
시스템 콜의 주요 기능
- 프로세스 관리: 프로세스의 생성, 실행, 종료 등을 관리합니다. 예를 들어, fork(), exec(), exit() 등의 시스템 콜이 이에 해당합니다.
- 파일 조작: 파일 생성, 읽기, 쓰기, 삭제 등 파일 시스템과 관련된 작업을 수행합니다. open(), read(), write(), close() 등이 포함됩니다.
- 디바이스 관리: 하드웨어 장치에 대한 접근과 조작을 가능하게 합니다. 예를 들어, 프린터 사용이나 디스크 읽기/쓰기 작업이 여기에 속합니다.
- 정보 유지: 시스템 날짜와 시간 설정, 시스템 데이터 통계 등을 조회하고 설정하는 기능을 제공합니다.
- 통신: 프로세스 간 통신(IPC) 또는 네트워크 통신을 위한 기능을 제공합니다. socket(), send(), receive() 등이 여기에 해당합니다.
- 메모리 관리: 프로세스에 메모리 할당 및 해제를 관리합니다. malloc(), free()와 같은 라이브러리 함수가 내부적으로 시스템 콜을 사용합니다.
시스템 콜의 작동 방식
응용 프로그램이 시스템 콜을 사용하고자 할 때, 다음과 같은 단계를 거칩니다:
- 응용 프로그램은 시스템 콜을 호출합니다.
- 호출된 시스템 콜은 사용자 모드에서 커널 모드로 전환을 요청합니다.
- 운영체제 커널은 요청된 서비스를 수행합니다.
- 작업이 완료되면, 커널은 결과를 응용 프로그램에 반환하고 사용자 모드로 다시 전환합니다.
예시:
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 |