본문 바로가기
운영체제

운영체제 시스템 콜이란?

by PudgeKim 2020. 11. 16.

앞으로 운영체제에 대해 쭉 정리해보려고 한다.

사실 저번학기 전필과목으로 운영체제를 배웠지만 당시에 이 과목이 왜 중요한지 와닿지도 않고 무엇보다 교수님의 목소리와 지루한 강의력에 공부를 안했더니 무려 D를 받았다. (후회는 없다 다시 돌아가도 그 강의를 듣고는 공부를 안할 거 같으니..)

이후 개인적인 흥미로 golang을 공부하다가 go 루틴을 이용한 멀티스레딩을 깔짝해보다가 운영체제 공부의 필요성을 느끼고 인터넷에 있는 강의를 보며 다시 공부중이다. (역시 동기부여가 있어야 공부가 잘된다.)

 

자 그럼 운영체제의 첫 포스팅으로 시스템 콜에 대해 알아보자.

우선 최근 컴퓨터들의 구조는 아래와 같다.

여기서 커널이란 프로세스 관리, 메모리 관리, 저장장치 관리와 같은 운영체제의 핵심적인 기능을 모아놓은 곳으로 운영체제의 성능을 좌우하는 곳이다.

자 이제 본격적으로 시스템 콜에 대해 알아보자면

사용자가 프로그램을 사용한다고 치면 커널로 바로 접근하는 것이 아니다. 시스템 콜이란 일종의 함수를 통해서 접근하는 것인데 이해하기 쉽게 객체지향언어의 특징인 class로 설명을 해보겠다.

class에서 변수를 만들 때 private 변수가 있다. 이는 외부에서 그 변수를 바로 접근하지 못하게 하는 키워드인데 외부에서 이 변수를 사용하려면 class내에 private변수에 접근 가능한 함수를 만들어주어야한다.

그러면 외부에서 private 변수에 바로 접근하는대신 다른 함수를 통해서 접근이 가능하다.

이렇게 하면 사용자가 바로 접근하는것보다 프로그램을 좀 더 의도에 맞게 사용가능하게하고 사용자의 잘못된 사용으로 프로그램이 망가지는 것을 방지한다.

시스템콜도 위와 같이 운영체제에 사용자가 바로 접근했을 때 발생할 수 있는 여러 실수 등을 방지하기 위해서 시스템콜이라는 운영체제와 통신 가능한 여러 함수들을 통해 통신하는 것이다.