'운영체제와 정보기술의 원리' 책을 바탕으로 정리한 내용입니다.
03. 컴퓨터 시스템의 동작 원리
DMA(Direct Memory Access)
모든 메모리 접근 연산이 CPU에 의해서만 이뤄지면 입출력 장치가 메모리 접근을 원할때 마다 CPU 업무 방해로 CPU 사용 효율이 떨어진다.
이것을 극복하기 위해 메모리에 접근가능한 DMA 장치를 추가한다.
- 블록단위로 데이터를 받음
- 인터럽트 번호를 줄여 CPU 효율 극대화
저장장치구조
- 주기억장치
: 전원이 나가면 사라지는 휘발성의 RAM을 매체로 함
- 보조기억장치
: 전원이 나가도 기억할 수 있는 비휘발성 마그네틱 디스크 사용
- 파일 시스템용
: 메모리는 휘발성 매체라서 비휘발성 디스크를 파일 시스템 용으로 사용
- 스왑영역
: 메모리는 한정적이며 비싸서 저장공간이 부족하기 때문에 필요한 부분만 메모리에 올리고 그렇지 않은 부분을 스왑 영역에 내려두는 것(스왑 아웃)
하드웨어 보안
다중 프로그래밍 환경에서 동작하기 때문에 다른 프로그램 실행을 방해하거나 충돌을 줄이기 위해 보안 기법이 필요
- 커널모드
: 다른 프로그램에서 해당 프로그램에 영향을 미치는 코드를 발생시킬 때 커널모드에서 실행해 위험한 명령을 수행할 수 없도록 함
- 사용자모드
: 일반적인 연산만 수행해 통제를 높이고 보안성을 확보(제한적인 명령어만 가능)
모두비트
사용자프로그램이 CPU를 가지고 있을 때 운영체제에서 제어가 불가능해 CPU내부에 들어프로그램을 감시하는것
→ 0 일때 커널모드로 명령어 수행, 1일 때 사용자모드로 제한된 명령어 수행
메모리 보안
여러 프로그램이 메모리에 동시에 올라가 실행되기 때문에 보안이 필요
- 기준레지스터
: 어떤 프로그램이 수행되는 동안 합법적으로 접근할 수 있는 메모리 상 가장 작은 주소를 보관
- 한계 레지스터
: 기준 레지스터 값부터 접근 할 수 있는 메모리의 범위를 보관
→두개의 범위 안에 있어야 접근 가능
CPU 보호
한개의 프로그램이 하나의 CPU를 독점하지 않게 하기 위해 타이머로 하드웨어를 사용
타이머
정해진 시간이 지나면 인터럽트를 발생키셔 운영체제가 CPU의 제어권을 획득하는 역할
운영체제는 다른 프로그램에게 CPU를 이양