시스템콜은 운영체제와 사용자 프로그램 간의 인터페이스.

프로그램이 응용체제의 서비스를 요청할 때 사용됨. (파일 시스템 접근, 메모리 관리, 프로세스 관리 등)

사용자 프로그램은 일반적으로 하드웨어 리소스에 직접 접근할 수 없기에 시스템콜을 통해 운영체제에 요청하여 리소스를 사용하는 단계를 거침.

 

예시

파일을 여는 open 이라는 시스템콜이 있음.

#include <fcntl.h>
#include <unistd.h>

int main() {
    int fd;
    fd = open("example.txt", O_RDONLY);
    if (fd == -1) {
        // 파일을 여는 데 실패한 경우
        return 1;
    }

    // 파일을 성공적으로 열었으므로 파일 작업 수행 가능
    // 파일 디스크립터를 사용하여 읽기, 쓰기 등의 작업 수행 가능

    close(fd);  // 파일 닫기
    return 0;
}

 

파일이름이 example.txt가 있으면 읽기 전용으로 여는 코드.

파일이 성공적으로 열리면 'fd'는 파일 디스크럽터를 가지며 이를 이용하여 파일 작업을 진행함.

파일을 여는데 실패하면 'fd'는 -1이 되어 오류 처리.

 

OS는 이 open 시스템콜을 받아 파일 시스템에서 해당 파일을 찾아서 열고 프로그램에 파일 디스크럽터를 반환함.

 

 

 

'[low level]' 카테고리의 다른 글

[Kernel] Kernel에 대하여  (0) 2024.08.14
[Linux kernel] 리눅스 커널이란?  (0) 2024.08.14
[Driver] 드라이버란?  (0) 2024.08.14

+ Recent posts