운영체제와 모드의 흐름?
글쓴이: skycloud / 작성시간: 화, 2020/05/05 - 3:45오후
유저, 커널 모드가 왜 존재하는지 역할이 무엇인지는 아는데 실행 흐름이 잘 이해가 안돼서 질문 드립니다.
예를 들어
int main(){
a= 1+2;
printf("%d",a);
}
라는 간단한 코드가 있다고 가정할 때 저 코드가 하나의 프로세스라고 가정하면
프로세스를 하게 되면 메인 메모리로 올라가게 되고 운영체제가 저 프로세스를 실행합니다.
a=1+2는 더하고 값을 집어넣는 것 밖에 없으니 유저모드에서 실행되고(즉 운영체제의 비트모드가 0인 상태에서 프로세스가 cpu할당을 받은 채로 연산을 진행하고 있는 것이죠) 이후 printf는 입출력 연산임으로 printf는 system call을 유발하고 운영체제는 커널모드로 진입하여 a라는 결과를 모니터에 보여주고 다시 비트모드를 0으로 한 후 이후 코드를 진행한다.(여기서는 없으니 끝나겠네요)가 맞나요?
댓글 달기