Home [OS] 운영체제 - 컴퓨터 시스템 구조 2
Post
Cancel

[OS] 운영체제 - 컴퓨터 시스템 구조 2

운영체제 - 컴퓨터 시스템 구조 2

시스템콜 (System Call)

  • 사용자 프로그램이 운영체제의 서비스를 받기 위해 커널 함수를 호출하는 것이다.
    • 사용자 프로그램이 직접 운영체제의 특권명령을 사용할 수 없기 때문에 운영체제의 도움을 요한다.
    • 운영체제의 도움을 받기 위해 메모리에 올라가 있는 사용자 프로그램은 운영체제를 부른다. 이것이 시스템콜이다.
    • 마치 I/O Device가 인터럽트를 거는 것 같은 구성이다. 차이점은 사용자 프로그램, 운영체제가 모두 메모리에 올라가 있는 상태라는 것이다.
  • 사용자 프로그램이 I/O 서비스를 사용하기 위해 기계어로 해당 서비스를 호출하는 것도 이에 포함된다. (운영체제의 도움을 요하기 때문에)
    • 이러한 시스템콜은 모니터 모드에서 운영체제가 실행할 수 있는 특권명령이다.

인터럽트 (Interrupt)

  • 현대의 운영체제는 인터럽트에 의해 구동된다. (인터럽트가 들어와야 일을 한다.)

인터럽트

  • 인터럽트 당한 시점의 레지스터와 program counter를 save 한 후, CPU의 제어를 인터럽트 처리 루틴에 넘긴다.

넓은 의미의 인터럽트

  • 하드웨어 인터럽트 : 하드웨어가 발생시킨 인터럽트를 말한다.
  • 소프트웨어 인터럽트(Trap)
    • Exception : 프로그램이 오류를 범한 경우다.
    • System Call : 프로그램이 커널 함수를 호출하는 경우다.

인터럽트 벡터

  • 해당 인터럽트의 처리 루틴 주소를 가지고 있다.

인터럽트 처리 루틴 (Interrupt Service Routine, 인터럽트 핸들러)

  • 해당 인터럽트를 처리하는 커널 함수를 말한다.

동기식 입출력 / 비동기식 입출력

  • 두 경우 모두 I/O 완료는 인터럽트로 알려준다.

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

  • I/O 요청 후 입출력 작업이 완료된 후에야 제어가 사용자 프로그램에 넘어간다.

구현 방법 1

  • I/O 동작 중에 CPU를 계속 독점한다. 그러면 I/O가 끝날 때까지 CPU를 낭비시키게 된다.
  • 매시점 하나의 I/O만 일어날 수 있다.

구현 방법 2

  • 방법 1의 개선 방안이다. I/O 작업 중 다른 프로그램에게 CPU를 준다.
  • I/O가 완료될 때까지 해당 프로그램에게서 CPU를 빼앗는다. 그리고 I/O처리를 기다리는 줄에 그 프로그램 줄을 세운다.

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

  • I/O가 시작된 후 입출력 작업이 끝나기를 기다리지 않는다.
  • 제어는 사용자 프로그램에 즉시 넘어간다.

DMA Controller

  • Direct Memery Access
  • 빠른 입출력 장치를 메모리에 가까운 속도로 처리하기 위해 사용한다.
  • CPU의 중재 없이 device controller가 device의 buffer storage의 내용을 메모리에 block 단위로 직접 전송한다.
  • 바이트 단위가 아니라 block 단위로 인터럽트를 발생시킨다.

서로 다른 입출력 기계어

I/O를 전담하는 기계어(special instruction)를 두는 방법

  • 메모리에 접근하는 기계어와 I/O를 수행하는 기계어를 분리해 사용하는 방법이다.

메모리 접근 기계어(Memery Mapped I/O)에 의한 방법

  • 메모리의 주소를 I/O 장치에도 매긴다.
  • 그리하여 메모리 접근 기계어를 통해 I/O 접근이 가능하도록 구성하는 방식이다.
This post is licensed under younghwani by the author.

[OS] 운영체제 - 컴퓨터 시스템 구조 1

[OS] 운영체제 - 프로세스 관리 1

Comments powered by Disqus.