티스토리 뷰
컴퓨터 시스템의 작동 개요
CPU는 현재 수행해야 할 메모리 주소의 명령을 있는 그대로 처리한다.
CPU가 수행해야 할 메모리 주소를 담고있는 레지스터를 프로그램 카운터(PC) 라고 부른다.
즉 CPU는 PC가 가르키는 메모리 여역의 명령을 처리한다.
시스템 동작이 CPU에 의해서만 이루어지는것은 아니다.
입출력 장치와 이들 장치를 전담하는 컨트롤러 및 버퍼로 구성된다. (컨트롤러는 작은 CPU, 버퍼는 그에 상응하는 메모리)
PC가 메모리 주소 중 운영체제가 존재하는 부분을 가르키고 있으면 현재 운영체제의 코드를 수행중이며, CPU가 커널모드에서 수행중이라고 한다.
PC가 메모리 주소 중 사용자 프로그램이 존재하는 부분을 가르키고 있으면 사용자모드라고 한다.
CPU가 수행하는 명령에는 일반명령과 특별 명령이 있다.
일반 명령 : 메모리에서 자료를 읽어와서 CPU에서 계산하고 결과를 메모리에 쓰는 일련의 명령
특권 명령 : 보안이 필요한 명령으로 입출력 장치, 타이머 등 각종 장치를 접근하는 명령
특권명령의 경우 운영체제만 수행할수 있도록 제한된다.
이러한 제한을 주기 위해 CPU내 모드 비트(mode bit)를 둔다. ( 0. 특권명령, 1. 일반명령 )
사용자 프로그램 실행중 특권 명령이 필요한 경우, 운영체제에게 특권 명령의 대행을 요청한다.
이러한 서비스 요청을 시스템 콜(system call) 이라고 부른다.
디스크에서 자료를 읽어오는 시스템콜을 예시로 들면
- CPU가 컨트롤 레지스터를 세팅해 디스크 컨트롤러에게 데이터를 읽어오라는 명령을 내린다.
- 디스크 컨트롤러는 디스크로부터 데이터를 읽어와서 자신의 로컬 버퍼에 저장한다.
- 작업이 완료되면 디스크 컨트롤러가 CPU에게 인터럽트를 발생시켜 입출력 작업이 완료되었음을 통지한다.
'OS' 카테고리의 다른 글
[운영체제] 인터럽트의 원리 (5) - 인터럽트 (0) | 2019.04.04 |
---|---|
[운영체제] 인터럽트의 원리 (4) - 사용자 프로그램이 사용하는 함수 (0) | 2019.04.04 |
[운영체제] 인터럽트의 원리 (3) - 프로그램의 실행 (0) | 2019.04.04 |
[운영체제] 인터럽트의 원리 (1) - 프로그램 구조와 인터럽트 (0) | 2019.04.04 |
[Linux] Bash Shell 명령어 정리 (0) | 2019.01.28 |