[OS] 1-2. 컴퓨터 시스템의 동작

공부 스파이럴·2024년 2월 13일
0

운영체제

목록 보기
4/27

컴퓨터 시스템의 작업 처리 순서

  1. 입력장치로 정보를 입력받아 메모리에 저장
  2. 메모리에 저장한 정보를 프로그램 제어에 따라 인출하여 연산장치에서 처리
  3. 처리한 정보를 출력장치에 표시하거나 보조기억장치에 저장

명령어와 데이터

  • 입력장치로 컴퓨터에 유입되는 정보
  • 명령어실행할 산술, 논리 연산의 동작을 명시하는 문장으로, 어떤 작업을 수행하는 명령어 집합이 프로그램
  • 프로그램은 컴파일러 등을 이용하여 0과 1로 이진화된 기계 명령어로 변환해야 컴퓨터가 이해할 수 있음

명령어의 기본 구조

  • 연산 부호(Operation code)
    • 프로세서가 실행할 동작인 연산 지정
    • 산술 연산(+, -, *, /), 논리 연산(AND, OR, NOT), 시프트, 보수 등 연산 정의
    • 연산 부호가 n비트이면 최대 2n2^n개 연산이 가능
  • 피연산자(Operand)
    • 연산할 데이터 정보 저장

직접 주소와 간접 주소

  • 직접 주소 : 주소필드에 오퍼랜드의 주소를 직접 저장
  • 간접 주소 : 주소필드에 유효주소가 저장되어 있는 기억장치 주소를 저장

명령어의 실행 과정

  1. 명령어 인출
  2. 명령어 해석, 프로그램 카운터 변경
  3. 피연산자 인출
  4. 명령어 실행
  5. 결과 저장
  6. 다음 명령어로 이동

명령어 사이클

  • 인출 사이클(Fetch cycle)
    • 메모리에서 명령어를 읽어 명령어 레지스터에 저장하고, 다음 명령어를 실행하려고 프로그램 카운터를 증가시킴
    • 인출 사이클에 소요되는 시간을 명령어 인출 시간이라고 함
  • 실행 사이클(Excutre cycle)
    • 인출한 명령어를 해독하고 그 결과에 따라 제어 신호를 발생시켜 명령어 실행
    • 시행 사이클에서 소비되는 시간을 실행 시간이라고 함
  • 간접 사이클(Indirect cycle)
    • 간접 주소 지정 방법을 사용하는 실행 사이클은 명령어를 수행하기 전에 실제 데이터가 저장된 주기억장치의 주소인 유효 주소를 한 번 더 읽어 옴
  • 인터럽트 사이클(Interrupt cycle)
    • 인터럽트는 프로세서가 프로그램을 수행하는 동안 컴퓨터 시스템의 내부나 외부에서 발생하는 예기치 못한 사건
    • 프로세서는 실행 사이클을 완료한 후 인터럽트 요구가 있는지 검사
    • 인터럽트 요구가 없으면 다음 명령어를 인출하고, 인터럽트 요구가 있으면 현재 수행 중인 프로그램의 주소(프로그램 카운터) 값을 스택이나 메모리의 0번지와 같은 특정 장소에 저장
    • 프로그램 카운터에는 인터럽트 처리 루틴의 시작 주소를 저장해 두었다가 인터럽트 처리를 완료하면 중단된 프로그램으로 복귀하여 계속 수행

명령어의 실행

인출 사이클 과정

  1. PC -> MAR
    • PC에 저장된 주소를 프로세서 내부 버스를 이용하여 MAR에 전달
  2. Memory(MAR) -> MBR / PC+1 -> PC
    • MAR에 저장된 주소에 해당하는 메모리 위치에서 명령어를 인출한 후 이 명령어를 MBR에 저장
    • 이때 제어장치는 메모리에 저장된 내용을 읽도록 제어 신호를 발생
  3. MBR -> IR
    • MBR에 저장된 내용을 IR에 전달

간접 사이클 과정

  1. IR -> MAR
    • IR에 저장된 명령어의 피연산자(주소부)를 MAR에 전달
  2. MAR -> MBR
    • MAR에 저장된 주소에 해당하는 메모리 위치에서 데이터를 인출한 후 이 데이터를 MBR에 저장
    • 이때 제어장치는 메모리에 저장된 내용을 읽도록 제어 신호를 발생
  3. MBR -> IR
    • MBR에 저장된 내용을 IR에 전달

인터럽트 사이클 과정

  1. PC -> MBR
    • PC의 내용을 MBR에 저장
  2. 인터럽트 루틴 주소 -> PC -> MAR
    • 인터럽트 루틴 주소를 PC에 저장
    • PC에 저장된 인터럽트 루틴 주소를 MAR에 저장
  3. MBR -> MAR
    • MBR의 주소에 있는 내용을 지시된 메모리 셀로 이동

0개의 댓글