[운영체제] Chapter1. 컴퓨터 시스템의 소개

DongHyeon·2022년 7월 29일
0

운영체제

목록 보기
1/8

Chatper1. 컴퓨터 시스템의 소개


1. 컴퓨터 하드웨어의 구성

  • 컴퓨터 시스템은 데이터를 처리하는 물리적인 기계장치인 하드웨어와 어떤 작업을 지시하는 명령어로 작성한 프로그램인 소프트웨어로 구성

  • 운영체제는 컴퓨터 하드웨어를 관리하는 소프트웨어

    *컴퓨터 하드웨어는 크게 프로세서, 메모리(기억장치), 주변장치로 구성되고, 이들은 시스템 버스로 연결 됨


1-1 프로세서

  • 프로세서는 컴퓨터 하드웨어에 부착한 모든 장치의 동작을 제어하고 명령을 실행(CPU, 중앙처리 장치라고 불리기도 함)

  • 연산장치, 제어장치, 레지스토러 구성되고, 이들은 내부 버스로 연결

  • 레지스터

    • 용도에 따라 전용 레지스터와 범용 레지스터로 구분

    • 사용자 정보 변경 여부에 따라 사용자 가시 레지스터와 사용자 불가시 레짓터로 구분

    • 저장하는 정보에 따라 데이터 레지스터, 주소 레지스터, 상태 레지스터로 세분화

    • 사용자 가시 레지스터

      • 데이터 레지스터
      • 주소 레지스터
    • 사용자 불가시 레지스터

      • 프로그램 카운터
      • 명령어 레지스터
      • 누산기
      • 메모리 주소 레지스터
      • 메모리 버퍼 레지스터

1-2 메모리

  • 메모리는 컴퓨터 성능과 밀접, 가격 문제로 인해 메모리 계층 구조를 구성하여 비용, 속도, 용량, 접근시간 등을 상호 보완

  • 메인 메모리, 자기디스크, 광디스크, 자기테이프, 캐시, 레지스터로 구성

  • 레지스터

    • 프로세서 내부에 있으며, 프로세서가 사용할 데이터를 보관하는 가장 빠른 메모리
  • 메인 메모리

    • 프로세서 외부에 있으며, 프로세서에서 즉각적으로 수행할 프로그램과 데이터를 저장 혹은 프로세서 처리 결과를 메모리에 저장
    • 입출력장치도 메인 메모리에서 데이터를 받거나 저장
    • 주기억장치 또는 1차 기억장치라고도 함. DRAM을 많이 사용
    • 다수의 셀로 구성되며 각 셀은 비트로 구성된다.
      *셀은 주소를 참조하는데, 이처럼 컴퓨터에 주어진 주소를 물리적 주소라 한다. 사용자는 물리적 주소 대신 수식이나 변수를 사용한다. 그리고 컴파일러가 프로그램을 기계 명령어로 변환할 때 변수와 명렁어에 주소를 할당하는데, 이 주소를 논리적 주소라 한다. 컴파일로 논리적 주소를 물리적 주소를 변환하는데, 이 과정을 매핑 또는 메모리 맵 이라고 한다.

    • 메인 메모리는 프로세서와 보조기억장치 사에이 있으며 디스크 입출력 병목 현상을 해결하는 역할도 한다.
  • 캐시

    • 프로세서 내부나 외부에 있으며, 프로세서와 메인 메모리의 속도 차이를 보완하는 고속 버퍼이다.
    • 메인메모리에서 데이터를 블록 단위로 가져와 프로세서에 워드 단위로 전달하여 속도를 높인다.
  • 보조기억장치

    • 프로그램과 데이터를 저장하는 하드웨어
    • 2차 기억장치 또는 외부기억장치라고도 한다.
    • 자기디스크, 광디스크, 자기테이프 등이 있다.

1-3 시스템 버스

  • 시스템 버스는 하드웨어를 물리적으로 연결하여 서로 데이터를 주고 받을 수 있게 하는 통로
  • 컴퓨터 내부의 다양한 신호를 시스템 버스로 전달
  • 기능에 따라 데이터 버스, 주소 버스, 제어 버스로 구분

1-4 주변장치

  • 주변장치는 프로세서와 메인 메모리를 제외한 나머지 하드웨어 구성 요소(입출력장치)

2 컴퓨터 시스템의 동작

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

2-1 명령어의 구조

  • 명령어는 프로세서가 실행할 연산인 연산 부호와 명령어가 처리할 데이터, 데이터를 저장한 레지스터나 메모리 주소인 피연산자로 구성

  • 연산 부호 : 프로세서가 실행할 동작인 연산을 지정. 연산 부호가 n비트이면 최대 2**n개 연산이 가능하다

  • 피연산자 : 연산할 데이터 정보를 저장.

  • 명령어는 메인 메모리에 저장하며, 한 번에 하나씩 프로세서에 순차적으로 전송하여 해석, 실행한다.

  • 피연산자의 수에 따라 0-주소 명령어 ~ 3-주소 명령어 등으로 구분딘다.


2-2 명령어의 실행

  • 명령어 실행 과정

    1. 명령어 인출
    2. 명령어 해석, 프로그램 카운터 변경
    3. 피연산자 인출
    4. 명령어 실행
    5. 결과 저장
    6. 다음 명령어로 이동 (1단계로 반복)
  • 프로세서의 제어장치가 명령어를 실행

  • 프로세서는 메모리에서 명령어를 한 번에 하나씩 인출하고 해석하여 연산

  • 실행 사이클

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

2-3 인터럽트 명령어

  • 인터럽트는 현재 실행중인 프로그램을 중단하고 다른 프로그램의 실행을 요구하는 명령어

  • 시스템의 처리 효율을 향상시키며, 프로그램이 실행 순서를 바꿔 가면서 처리하여 다중 프로그래밍에 사용

  • 인터럽트는 입출력장치나 프로그램 등에서 프로세서로 보내는 하드웨어 신호. 인터럽트를 이용하면 중간에 다른 프로그램이나 명령어를 수행할 수 있다. 특히, 예상치 못한 사건이 일어났을 때 상황을 처리하기 위해 필요

  • 인터럽트는 크게 인터럽트 요청과 인터럽트 서비스 루틴으로 구분. 인터럽트 요청 신호에 따라 수행하는 루틴이 인터럽트 처리 프로그램, 즉 인터럽트 서비스 루틴이다.

  • 인터럽트 요청 회선

    • 단일 회선 : 인터럽트 요청이 가능한 모든 장치를 공통의 단일 회선으로 프로세서에 연결하는 방법. 회선 하나에 장치를 여러 개 연결하여 인터럽트를 요청한 장치를 판별하는 기능이 필요

    • 다중 회선 : 모든 장치를 서로 다른 고유 회선으로 프로세서와 연결하는 방법. 인터럽트를 요청한 장치를 바로 판별 가능

2개의 댓글

comment-user-thumbnail
2022년 7월 29일

오랜만에 오셨네요^^

1개의 답글