[운영체제] 2. System Structure & Program Execution

off_sujin·2022년 7월 10일
0

운영체제

목록 보기
2/5

📑 본 글은 반효경 교수님의 운영체제 강의를 듣고 정리한 글입니다.

📑 컴퓨터 시스템의 구조


컴퓨터 시스템의 구조는 컴퓨터 내부 장치인 CPU, 메모리와 컴퓨터 외부 장치(입출력 장치)인 디스크, 키보드, 마우스, 모니터, 네트워크 장치 등으로 구분된다. 컴퓨터는 외부 장치에서 내부 장치로 데이터를 읽어와 (input) 각종 연산을 수행한 후, 그 결과를 외부 장치로 내보내는(output) 방식으로 업무를 처리한다.

CPU

CPU는 클럭마다 메모리에서 명령(Instruction)을 하나씩 읽어서 실행하는 역할을 한다. IO가 일어나면 CPU가 직접 접근하지 않고 Device Controller에게 시킨다. 이렇게 디바이스 컨트롤러에게 시키는 이유는 CPU에 비해 디바이스 속도가 매우 느리기 때문이다.

Mode bit

CPU에서 실행되는 것이 운영 체제인지 사용자 프로그램인지 구분해 준다.

  • 1 (사용자 모드) - 사용자 프로그램
    • 사용자 프로그램이 CPU 가질 때는 제한된 인스트러션만 실행시킬 수 있다.
    • 만약 Mode bit가 없다면 사용자 프로그램에서 하드웨어를 직접 접근하여 보안에 취약해 질 수 있다.
  • 0 (커널 모드) - 운영 체제
    • 운영 체제가 CPU에서 실행 중일 때는 모든 인스트럭션을 실행할 수 있다.

DMA (Direct Memory Access) Controller

원칙적으로 메모리는 CPU에 의해서만 접근할 수 있는 장치이다. CPU 외의 장치가 메모리의 데이터에 접근하기 위해서는 CPU에게 인터럽트 발생시켜 CPU가 대신 컨트롤러의 로컬 버퍼와 메모리 사이에서 데이터를 옮겨 준다. 하지만, 작업 처리 속도가 매우 빠른 CPU가 인터럽트를 많이 당하면 비효율적이다. 그래서 CPU 이외에 메모리 접근이 가능한 DMA 컨트롤러를 둔다.

Timer

사용자 프로그램에서 while문으로 무한 루프를 돌게 된다면 특정 프로그램이 CPU를 독점할 수 있다. Timer는 특정 프로그램이 CPU를 독점하는 것을 막기 위한 하드웨이다.

Device Controller

메모리 및 입출력 장치 등의 각 하드웨어 장치에는 Device Controller라는 것이 붙어 있다. 컨트롤러는 일종의 작은 CPU로서, 각 하드웨어 장치를 제어하는 역할을 수행한다.

Local Buffer

메인 CPU의 작업 공간인 메인 메모리가 있듯이 디바이스 컨트롤러도 데이터를 임시로 저장하기 위한 작업 공간이 필요한데, 이를 Local Buffer가 그 역할을 한다.

참고로, Device Driver는 CPU가 실행하는 각 디바이스에 접근하기 위한 소프트웨어를 뜻한다.

Memory

메모리는 CPU가 직접 접근할 수 있는 내부 기억 장치로서 특정 프로그램이 CPU에서 실행되려면 해당 부분이 메모리에 올라가 있어야 한다. 운영 체제는 컴퓨터가 부팅되었을 때 메모리에 올라가 있는데, 메모리에 상주하고 있는 CPU의 작업 공간을 Main Memory라고 부른다.

Interrupt

CPU가 프로그램을 실행하고 있을 때, 입출력 하드웨어 등의 장치나 예외 상황이 발생하여 처리가 필요한 경우에 CPU에게 알리는 일종의 이벤트를 뜻한다. 좁은 의미의 인터럽트는 하드웨어 인터럽트를 의미하지만, 넓은 의미의 인터럽트는 소프트웨어 인터럽트까지 포함한다.

소프트웨어 인터럽트는 Trap이라고도 부르며, 프로그램이 오류를 발생하여 Exception이 발생하거나, 시스템 콜을 통해 커널 함수를 호출할 때 등이 있다.

동기식 입출력과 비동기식 입출력

동기식 입출력 (Synchronous I/O)

동기식 입출력은 입출력 요청 후 입출력 작업이 완료된 후에야 제어가 사용자 프로그램에 넘어가는 것을 말한다.

비동기식 입출력 (Asynchronous I/O)

비동기식 입출력은 입출력이 시작된 후, 입출력 작업이 끝나기를 기다리지 않고 CPU 제어권을 사용자 프로그램에게 즉시 넘기는 것을 말한다.

저장 장치의 계층 구조


위로 갈수록 속도가 빠르지만, 단위 공간 당 가격이 비싸고 용량이 적다. 반면 아래로 갈수록 단위 공간 당 가격이 싸고 용량이 많지만, 속도가 느려진다.

profile
학습 중..

0개의 댓글