시스템 호출

CS지식

사용자 모드(User mode)와 커널 모드(kernel mode)란?

CPU는 사용자 모드와 커널 모드, 둘 중 하나로 설정된다. 응용프로그램 코드는 사용자 모드에서 실행되며, 커널 코드는 커널 모드에서 실행된다. 이 말은 운영체제가 응용프로그램을 실행시킬 때는 사용자 모드로 설정되고, 응용프로그램이 커널 함수를 실행시키기 위해 시스템 호출을 하면 그 때 커널모드로 전환되며 커널 코드가 실행된다. 사용자 모드인지 커널 모드인지 구별하는 방법은 CPU에 내장되어 있는 모드 레지스터를 통해서 알 수 있다. 사용자 모드 사용자 모드일 때, 응용프로그램은 메모리 안에 존재하는 사용자 영역에 액세스 할 수 있으며 커널 영역에 접근 시 시스템 예외가 발생하고 응용프로그램을 종료시킨다. 커널 모드 커널 모드일 때, CPU는 모든 메모리 공간을 액세스할 수 있으며 특권 명령을 실행할 수..

CS지식

시스템 호출이란?

시스템 호출 시스템 호출이란 응용프로그램에서 커널 코드를 실행하는 기법입니다. 여기서 커널 코드란? 커널 코드는 커널에 작성된 함수를 뜻 합니다. 응용프로그램은커널에 작성된 함수를 사용할 수 없습니다. 왜냐하면 함수의 위치를 모를 뿐더러, 결론적으로 말하자면 응용프로그램은 커널에 있는 메모리에 접근 권한이 없기 때문입니다. 그래서 운영체제는 패키지를 통해 응용프로그램을 대신하여 시스템 호출 라이브러리를 제공합니다. 따라서 커널 코드를 사용할 수 없는 응용프로그램은 시스템 호출 라이브러리안에 들어있는 시스템 호출 함수를 통하여 커널의 기능을 사용할 수 있습니다. 시스템 호출은 응용프로그램이 커널의 기능을 사용할 수 있는 유일한 수단입니다. 시스템 호출 함수들은 시스템 호출을 일으키는 기계 명령을 통해 CP..

simun
'시스템 호출' 태그의 글 목록