본문 바로가기

CS STUDY/운영체제

시스템 콜(System Call)

시스템 콜(System Call)

개념
  • 사용자가 직접 커널 접근x => 응용프로그램에서 시스템 커널에 어떠한 기능을 수행해 달라고 요청
명령어
  • fork, exec: 새로운 프로세스 생성
  • wait: 프로세스가 만든 자식 프로세스가 끝날 때까지 기다리는 명령어 

 

fork() 함수를 통해 부모 프로세스를 복사하면 주소 공간을 Binary 통째로 복사
Program Counter까지 모두 복사되니 자식 프로세스는 부모와 똑같이 동작
자식은 main()의 시작부터 실행하는 것이 아니라 fork() 다음 코드부터 실행


Q. 그러면 어떻게 자식과 부모를 구분?

A. 리턴값의 차이 => 부모는 양수 자식은 0

exec()라는 System Call을 통해 프로그램을 덮어 씌우기 그 다음 코드 실행x

wait()의 경우 자식 프로세스가 종료될 때까지 부모가 Sleep 자식이 끝나면 커널이 부모 깨워서 Ready

exit()의 경우 자발적 종료, 비자발적 종료 두 가지 존재 

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

뮤텍스 & 세마포어  (0) 2024.03.21
파일 시스템(File System)  (0) 2024.02.26
메모리(Memory)  (0) 2024.02.24
페이지 교체 알고리즘  (0) 2024.02.09
페이징과 세그먼테이션  (1) 2024.02.09