블로그 이미지
LanSaid

calendar

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 31

Recent Post

Recent Comment

Recent Trackback

Archive

2012. 4. 13. 13:32 Study/운영체제

* 컴퓨터 시스템 구성 요소
 1. 컴퓨터 시스템
  1) 하드웨어와 소프트웨어로 구성
   (1) 하드웨어
    ㄱ. 데이터를 처리하는 물리적인 기계 장치
    ㄴ. 프로세서(CPU), 버스, 메모리 등 다양한 주변장치로 구성

   (2) 소프트웨어 : 특별한 작업 지시를 위해 명령어로 작성한 프로그램
  

 2. 프로세서
  1) 운영체제와 가장 밀접한 하드웨어로 각 부분의 동작 제어 및 연산 수행

  2) 중앙처리장치(CPU)라 하며 레지스터, 산술 논리 연산장치, 제어장치 등으로 구성

  3) 마이크로프로세서
   (1) 주기억장치를 제외한 레지스터, 산술 논리 연산장치, 제어장치를 칩 하나로 구성
   (2) 개인용 컴퓨터에서 주로 이용


 3. 버스(Bus)
  1) 프로세서를 포함한 각 장치 간 또는 서브시스템을 서로 연결하여 정보(데이터)를 주고 받을 수 있는 통로
   ex> 데이터 입출력, 프로세서 상태, 인터럽트 요구/허가, clock 등이 버스를 통해 전달

  2) 버스의 위치에 따라 내부 버스와 외부 버스로 분류
   (1) 내부 버스
    ㄱ. 프로세서 내부에서 레지스터, 연산장치, 메모리와의 인터페이스 등을 연결
    ㄴ. 시스템 버스 인터페이스 회로를 통해 외부버스와 연결
 
   (2) 외부 버스
    ㄱ. CPU와 MEM / CPU와 IO / IO와 IO 를 연결
    ㄴ. 시스템 버스라 부르며 각 시스템 버스는 버스 제어기라 불리는 제어 회로를 가짐
     (ㄱ) 메모리 버스 : 프로세서와 메모리or캐시 메모리 연결,  프로세스 입출력 버스 정도의 속도
       - Backside Bus : 프로세서와 캐시 메모리간 전용 채널,   프로세서의 동일한 속도로 데이터 전송
       - Frontside bus : 프로세서와 메모리 간의 데이터를 전송하며 속도가 느림
     (ㄴ) 주변 버스 : 입출력(IO)버스, 프로세서와 주변 장치를 연결하여 데이터 전송

   3) 버스의 기능에 따라 데이터 버스, 주소 버스, 제어 버스로 분류
    (1) 데이터 버스 - 모든 회선이 동일한 역할/ 병렬 비트 전송
     ㄱ. 컴퓨터 시스템에서 데이터(자료), 명령어 등의 정보를 교환하는 전송로
     ㄴ. 데이터 입출력 시 사용하는 양방향 버스
     ㄷ. 데이터 버스 신호선의 수 = 프로세서의 워드 길이   => 프로세스 성능을 결정
    (2) 주소 버스 - 모든 회선이 동일한 역할/ 병렬 비트 전송
     ㄱ. 장치와 장치사이에서 주소 정보를 전송 시 사용
     ㄴ. 신호(주소)선의 수에 따라 최대 사용 가능한 메모리 용량 이나 IO장치 수를 결정
    (3) 제어 버스 - 각 회선이 독립된 역할/ 단방향
     ㄱ. 프로세서가 저장장치와 입출력 장치에 데이터를 전송할 때 사용
     ㄴ. 현재 수행중인 작업 종류나 상태를 다른 장치에 알릴 때 사용


 4. 레지스터(Register)
  1) 프로세서에 위치한 고속 메모리. 프로세서가 바로 사용할 데이터 저장
   (1) 특수한 값 하나를 저장하는 기억 공간으로 사용
   (2) 컴퓨터의 구조에 따라 크기 및 종류가 다양
   (3) 용도에 따라 전용/범용 레지스터로,  저장되는 정보 종류에 따라 데이터/주소/상태 레지스터로,
        사용자가 저장한 정보의 변경 여부에 따라 사용자 가시/사용자 불가시 레지스터로 분류

  2) 사용자 가시 레지스터 : OS와 사용자 프로그램을 통해 접근 가능한 데이터와 주소, 일부 조건 코드를 보관
    ex> 관련된 연산 결과로 발생, 프로그램적으로 접근하는 0, 자리넘침, 올림, 양수 비트 등.
   (1) 데이터 레지스터(DR)
    ㄱ. 함수 연산에 필요한 데이터 저장
    ㄴ. 수치, 문자 등을 저장하므로 산술,논리 연산에 이용. 연산 결과로 플래그 값 저장
   (2) 주소 레지스터
    ㄱ. 주소나 유효 주소를 계산하는데 필요한 주소의 일부분 저장
    ㄴ. 주소 레지스터에 저장된 값(수치 데이터)을 이용해 산술 연산 가능.
    ㄷ. 주소 레지스터 종류
     (ㄱ) 기준 주소 레지스터 : 프로그램 실행 시 사용하는 기준 주소값을 저장.
                                           페이지, 세그먼트 처럼 블록화 된 정보에 접근하는데 사용
     (ㄴ) 인덱스 레지스터 : 유효 주소를 계산하는 데 사용되는 주소 정보 저장
       * 유효 주소? 주소 연산 끝에 최종적으로 피연산자가 있는 곳을 가리키는 주소
                          거리로 주소를 나타낼 시 기준 주소에 거리값을 더하여 나온 주소
     (ㄹ) 스택 포인터 레지스터 : 메모리에 프로세서 스택 구현 시 사용.
                                              반환주소, 프로세서 상태정보, 서브루틴의 임시 변수를 저장하는데 사용

  3) 사용자 불가시 레지스터 : 프로세스의 제어와 상태 관리.
   (1) 프로그램 카운터 (PC)
    ㄱ. 프로그램 수행을 제어하는 명령어 실행 순서 보관 -> 다음에 실행할 명령어의 주소 저장
    ㄴ. 계수기로 되어 있어 실행할 명령어를 메모리에서 읽으면 PC가 증가
   (2) 명령어 레지스터(IR)
     ㄱ. 현재 수행하는 명령어 저장, 명령어의 연산자 부분만 보관, 다른 레지스터 만큼 비트 필요 X
     ㄴ. 명령어 연산자는 메모리 내에서만 전달되므로, IR과 MBR 사이에 직접 경로를 통해 빠른 전달 가능
   (3) 프로그램 상태 레지스터(PSR)
     ㄱ. 상태정보(플래그, PC에 저장된 주소 정보등) 저장
     ㄴ. 프로그램이 수행되는 순간마다 프로그램의 수행 상태와 프로세서 상태를 나타냄
   (4) 메모리 주소 레지스터(MAR)
     ㄱ. 접근하려는 메모리의 주소 저장
     ㄴ. 주소 레지스터, PC등으로 부터 주소 정보를 전달 받음.
   (5) 메모리 버퍼 레지스터(MBR)
     ㄱ. 메모리에서 정보를 입출력 시 사용
     ㄴ. 연산장치를 통해 메모리 주소 레지스터, 인덱스 레지스터, PC등의 주소 레지스터와 데이터 레지스터에
          정보를 전달 시 사용
    (6) 명령어 레지스터(IR)
    (7) 누산기(AC)
    (8) MQR : 곱수 몫 레지스터
    (9) MM : 메인 메모리


 5. 메모리
  1) 메모리 계층 구조
   (1) MM의 높은 가격으로 인해 다양한 레벨의 메모리를 연결하여 비용/속도/용량/접근 시간을 상호 보완
   (2) 시스템의 성능 향상을 위해 사용.
   (3) 메모리 참조가 지역성(국부성)이라는 특징을 활용하여 메모리 계층 구조 이용
    ㄱ. 지역성?
         실행 중인 프로세서가 실행기간 동안 메모리 정보를 균일하게 접근하지 않고 블록 중 일부만 집중적으로
         참조하는 현상
    ㄴ. 지역성 발생 이유
     (ㄱ) 프로그램은 명령어를 순차적 실행하는 경향이 있으므로 명령어는 특정 지역메모리에 인접
     (ㄴ) 프로그램은 순환의 반복이지만 메모리 참조 영역은 일부 영역에 국한
     (ㄷ) 대부분의 컴파일러는 메모리에 인접한 블록, 즉 배열로 저장하므로 지역적인 배열 접근 경향을 보임

  2) 메인 메모리(MM)
   (1) 고유 주소를 가진 WORD나 BYTE로 구성된 대규모의 배열, 주소를 읽거나 기록함으로써 상호 작용하는 특성을 지님
   (2) 다수의 셀로 구성되며 각 셀들은 비트로 구성
   (3) MM에 데이터 저장 시 셀 하나 혹은 다수의 셀에 나뉘어 저장되며, 셀은 주소에 의해 참조됨
    ㄱ. 셀이 K비트 일 경우 2^K 값을 저장
    ㄴ. n비트일 경우 참조 주소 범위는 0~2^(n-1)
   (4) 물리적 주소 공간
    ㄱ. 컴퓨터에 주어진 주소 공간. 사용자는 직접 사용하지 않고 수식,변수를 이용
   (5) 논리적 주소 공간
    ㄱ. 컴파일러에 의해 기계어로 변환된 변수와 명령어에 할당되는 주소
    ㄴ. 별도의 주소 공간에 나타남
   (6) 컴파일
    ㄱ. 원시 프로그램(코드)를 기계 명령어로 변환하는 처리 과정
    ㄴ. 논리적 주소 -> 물리적 주소로 변환
   (7) 메모리 속도는 어떤 동작의 시작과 종료사이의 경과 시간을 나타냄
        메모리 접근시간과 메모리 사이클 시간으로 표현
    ㄱ. 메모리 접근 시간 : 명령 발생 후 목표번지를 검색하여 데이터 입출력을 시작할 때까지의 시간
    ㄴ. 메모리 사이클 시간 : 두 번 연속적인 메모리 동작 사이에 필요한 최소 지연 시간
    ㄷ. 일반적으로 사이클 시간 > 접근 시간
   (8) 프로세서와 MM사이의 속도 차가 커짐에 따라 별도의 캐시를 구현하기도 함

  3) 가상 메모리
   (1) MM의 유효 크기를 늘리는 기법
   (2) 보조 기억장치에 저장했다가 필요 시 MM으로 이동시키는 기술
   (3) 실행 중인 프로세스가 참조하는 주소와 MM에서 사용하는 주소를 분리해야함
    ㄱ. 매핑, 메모리 맵 : 논리적 주소를 물리적 주소로 변환하는 과정
   (4) MM보다 큰 저장 용량의 주소를 지정 가능하므로 프로그램을 부분 적재하여 실행 가능
    ㄱ. 실제 수행 중인 부분만 MM으로 매핑, 나머지는 보조기억장치로 매핑

  4) 캐시
   (1) 프로세서와 MM사이에서의 고속 버퍼
   (2) MM에서 일정 BLOCK의 데이터를 가져와 WORD단위로 프로세서에 전달, 중간에서 대역폭을 확장시켜 속도 증대
   (3) 8~64BYTE의 BLOCK 여러개로 구성,  캐시의 블록 크기 = MM의 블록 크기
   (4) 캐시 메모리 시스템 : MM+캐쉬 , 가격,성능 절충하고  MM에 의한 성능 저하 감소
   (5) 캐시의 동작
    ㄱ. MM의 주소는 Tag영역과 주소 영역 등을 나타내는 연속된 값으로 구성
    ㄴ. 캐시는 MM 주소영역을 한 번 읽어 들일 수 있는 라인 크기로 나눈 후 블록에 번호를 부여한 후 태그로 번호를 저장
    ㄷ. 프로세서가 MM 접근이 필요할 때 먼저 캐시를 조사하여 캐시 Tag와 메모리 주소의 Tag영역을 비교,
         원하는 블록을 찾는다.
      (ㄱ) 캐시 적중 시 캐시는 데이터 라인에서 요청한 데이터를 읽어 프로세서로 전송
      (ㄴ) 캐시 실패 시 캐시 제어기는 MM에서 해당 블록을 읽어 캐시에 넣고 프로세서로 전송

 6. 주변 장치
  1) 컴퓨터 기능을 향상시키기 위한 추가 장비
  2) 입-출력 장치, 보조기억장치, 스캐너, 모뎀 등




* 컴퓨터 시스템의 동작
 1. 컴퓨터 시스템의 동작 과정
posted by LanSaid