티스토리 뷰

 

Chapter 2.  System Structure & Program Execution (2)

 


 

💡 컴퓨터 시스템 구조 (2)

 

Program Counter

  • CPU 안에 있는 Register 중의 하나로서, 다음에 실행할 instruction의 주소를 가지고 있어 실행할 기계어 코드의 위치를 지정한다.
  • 다른 말로는 명령어 포인터 (instruction pointer)라고도 불린다.
  • 일반적으로 Program counter는 명령을 마칠때마다 주소값이 1씩 증가하게 된다.

 

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

 

  1. 동기식 입출력 (Synchronous I/O)
    • I/O 요청 후 입출력 작업이 완료된 후에야 제어가 사용자 프로그램에 넘어가며, 다음 작업을 수행할 수 있음.
    • 구현 방법 1
      • I/O가 끝날 때까지 CPU를 낭비시킴
      • 매 시점 하나의 I/O만 일어날 수 있음.
    • 구현 방법 2
      • I/O가 완료될 때까지 해당 프로그램에게서 CPU를 빼앗음
      • I/O 처리를 기다리는 줄에 그 프로그램을 줄 세움.
      • 다른 프로그램에게 CPU를 줌.
  2. 비동기식 입출력 (Asynchronous I/O)
    • I/O가 시작된 후 입출력 작업이 끝나기를 기다리지 않고 제어가 사용자 프로그램에 즉시 넘어가 다음 작업을 수행할 수 있음.

--> 두 경우 모두 I/O의 완료는 인터럽트로 알려줌.

 

DMA Controller

  • I/O의 과도한 interrupt를 방지하기 위한 Controller
  • 빠른 입출력 장치를 메모리에 가까운 속도로 처리하기 위해 사용.
  • CPU의 중재 없이 device controller가 device의 buffer storage의 내용을 메모리에 block 단위로 직접 전송.
  • 바이트 단위가 아니라 block 단위로 인터럽트를 발생시키며, 이로 인해 CPU를 좀 더 효율적으로 사용할 수 있도록 도와줌.

 

서로 다른 입출력 명령어

  • I/O를 수행하는 special instruction에 의해
  • Memory Mapped I/O에 의해

 

저장장치 계층 구조

  • internal 기억장치들은 주로 휘발성 기억장치들, external 기억장치들은 주로 비휘발성 기억장치로 구성된다.
  • CPU가 직접 접근 가능한 primary 저장장치들은 register, cache memory, main memory 이렇게 세가지 이다.
  • 용량이 적을수록 속도도 빠르고 가격이 비싸며, 용량이 클수록 속도도 느리고 가격이 저렴하다.
  • register와 main memory간의 속도 차이를 줄이기 위해 cache memory 를 사용한다.

 

프로그램의 실행 (Memory Load)

  • 각 프로그램마다 독자적인 주소 공간이 생기며, 그 안에는 stack, data, code로 영역이 나누어져 있다.
  • stack : 함수를 호출하거나 리턴할때 데이터를 임시 보관하는 영역
    • 사용자 프로그램마다 커널 스택을 따로 사용함.
  • data : 변수, 전역 변수 저장. 프로그램이 사용하는 자료구조 영역.
    • 프로세스를 관리하기 위한 자료구조(PCB) 저장
    • CPU, Memory, Disk를 관리하기 위한 자료구조 저장.
  • code : 프로그램의 기계어 코드를 저장하는 영역. 커널 코드
    • 시스템 콜, 인터럽트 처리 코드
    • 자원 관리를 위한 코드
    • 편리한 서비스 제공을 위한 코드

 

사용자 프로그램이 사용하는 함수

  • 함수 (function)
    1. 사용자 정의 함수
      • 자신의 프로그램에서 정의한 함수
    2. 라이브러리 함수
      • 자신의 프로그램에서 정의하지 않고 갖다 쓴 함수
      • 자신의 프로그램의 실행 파일에 포함되어 있다.
    3. 커널 함수
      • 운영체제 프로그램의 함수
      • 커널 함수의 호출 = 시스템 콜

 

프로그램의 실행

 

 

 


⬇︎⬇︎ 강의 링크 ⬇︎⬇︎

http://www.kocw.net/home/search/kemView.do?kemId=1046323 

 

운영체제

운영체제는 컴퓨터 하드웨어 바로 위에 설치되는 소프트웨어 계층으로서 모든 컴퓨터 시스템의 필수적인 부분이다. 본 강좌에서는 이와 같은 운영체제의 개념과 역할, 운영체제를 구성하는 각

www.kocw.net

 

 

댓글
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Total
Today
Yesterday
공지사항
최근에 올라온 글