운영체제란 시스템 하드웨어를 관리하면서 응용 소프트웨어를 실행하기 위하여 하드웨어 추상화 플랫폼과 공통 시스템 서비스를 제공하는 시스템 소프트웨어를 말한다.

최근에는 가상화 기술의 발전에 힘입어 실제 하드웨어가 아닌 하이퍼바이저(가상 머신) 위에서 실행되기도 한다.

 

정리하자면 컴퓨터 시스템 자원(HW)를 효율적으로 관리하여 사용자에게 서비스를 제공하는 소프트웨어라고 말할 수 있겠다.


시스템 하드웨어

시스템 하드웨어는 다음과 같이 존재한다.

  • 프로세서
    • 종류 
      • CPU
      • 그래픽카드 (GPU)
      • 응용 전용 처리장치 등
    • 컴퓨터의 두뇌에 해당
      • 연산을 수행하며 컴퓨터의 모든 장치의 동작을 제어한다.
      • 프로세서 내부에는 제어장치가 레지스터와 연상장치를 제어하며 레지스터와 연산장치는 서로 상호작용하며 데이터를 처리한다.
        • 레지스터란?
          • 프로세서 내부에 있는 메모리
            • 프로세서가 사용할 데이터를 저장
            • 컴퓨터에서 가장 빠른 메모리
          • 종류
            • 용도에 따라
              • 전용 레지스터, 범용 레지스터
            • 사용자가 정보 변경 가능 여부에 따라
              • 사용자 가시 레지스터(데이터, 주소 레지스터)
              • 사용자 불가시 레지스터
                • 종류
                  • 프로그램 카운터
                    • 다음 실행할 명령어의 주소를 보관하는 레지스터. 계수기로 되어있어 실행할 명령어를 메모리에서 읽으면 명령어의 길이만큼 증가하여 다음 명령어를 가리키며, 분기 명령어는 목적 주소로 갱신할 수 있다.
                  • 명령어 레지스터
                    • 현재 실행하는 명령어를 보관하는 레지스터이다.
                  • 누산기
                    • 데이터를 일시적으로 저장하는 레지스터이다.
                  • 메모리 주소 레지스터
                    • 프로세서가 참조하려는 데이터의 주소를 명시하여 메모리에 접근하는 버퍼 레지스터이다.
                  • 메모리 버퍼 레지스터
                    • 프로세서가 메모리에서 읽거나 메모리에 저장할 데이터 자체를 보관하는 버퍼 레지스터이다. 메모리 데이터 레지스터라고도 한다.
            • 저장하는 정보의 종류에 따라
              • 데이터 레지스터
                • 함수 연산에 필요한 데이터를 저장함. 값, 문자 등을 저장하므로 산술 연산이나 논리 연산에 사용하며, 연산 결과로 플래그 값을 저장한다.
              • 주소 레지스터
                • 주소나 유효 주소를 계산하는데 필요한 주소의 일부분을 저장함. 주소 레지스터에 저장한 값(값 데이터)을 사용하여 산술 연산을 할 수 있다.
                • 종류
                  • 기준 주소 레지스터
                  • 인덱스 레지스터
                  • 스택 포인터 레지스터
              • 상태 레지스터
    • 운영체제와 프로세서
      • 프로세서에게 처리할 작업 할당 및 관리
        • 프로세스(Process) 생성 및 관리
      • 프로그램의 프로세서 사용 제어
        • 프로그램의 프로세서 사용 시간 관리
        • 복수 프로그램간 사용 시간 조율 등
  • 메모리
    • 종류(위로 갈수록 상위계층. 상위계층은 속도&가격이 높고 용량이 낮으며 하위계층은 속도&가격이 낮고 용량이 높다.)
      • 레지스터
      • 캐시
        • 프로세서 내부에 있는 메모리(L1, L2 캐시등)
          • 속도가 빠르고, 가격이 비쌈
        • 메인 메모리 입출력 병목현상을 해소.
        • 캐시의 동작
          • 일반적으로 HW적으로 관리됨
          • 캐시 히트(Cache hit)
            • 필요한 데이터 블록이 캐시 존재
            • 데이터를 미리 가져와 프로세서와의 데이터 교환이 매우 빠르게 이루어질 수 있음
          • 캐시 미스(Cache miss)
            • 필요한 데이터 블록이 없는 경우
            • 데이터가 없으면 메인 메모리에서 들고와야하고, 결국 처리가 느려짐
        • 지역성(Locality)
          • 공간적 지역성(Spatial locality)
            • 참조한 주소와 인접한 주소를 참조하는 특성
              • 예) 순차적 프로그램 수행
          • 시간적 지역성(Temporal locality)
            • 한번 참조한 주소를 곧 다시 참조하는 특성
              • 예) For문 등의 순환문
          • 지역성은 캐시 적중률(cache hit ratio)과 밀접
            • 알고리즘 성능 향상을 위한 중요한 요소 중 하나
      • 메인 메모리
        • 주 기억장치로써, 프로세서가 수행할 프로그램과 데이터를 저장함.
          • DRAM을 주로 사용
            • 용량이 크고, 가격이 저렴
          • 디스크 입출력 병목현상(I/O bottleneck)을 해소
      • 보조기억장치 (프로그램과 데이터를 메모리에 옮겨야만 실행 가능)
        • Auxiliary memory / Secondary memory / Storage
        • 프로그램과 데이터를 저장
        • 프로세서가 직접 접근할 수 없음(주변장치)
          • 주기억장치를 거쳐서 접근
          • (프로그램 / 데이터 > 주기억장치)인 경우는?
            • 가상 메모리 사용
        • 용량이 크고, 가격이 저렴함.
    • 데이터를 저장하는 장치
      • 프로그램(OS, 사용자sw등), 사용자 데이터 등
    • 메모리와 운영체제
      • 메모리 할당 및 관리
        • 프로그램의 요청에 따른 메모리 할당 및 회수
        • 할당된 메모리 관리
      • 가상 메모리 관리
        • 가상 메모리 생성 및 관리
        • 논리주소 -> 물리주소 변환
  • 시스템 버스(System bus)
    • 하드웨어들이 데이터 및 신호를 주고받는 물리적인 통로
    • 종류
      • 데이터 버스
        • 프로세서와 메인 메모리, 주변장치 사이에 데이터를 전송함. 데이터 버스를 구성하는 배선 수는 프로세서가 한번에 전송할 수 있는 비트 수를 결정하는데, 이를 워드라 한다.
      • 주소 버스
        • 프로세서가 시스템의 구성요소를 식별하는 주소 정보를 전송한다. 주소 버스를 구성하는 배선 수는 프로세서와 접속할 수 있는 메인 메모리의 최대 용량을 결정한다.
      • 제어 버스
        • 프로세서가 시스템의 구성 요소를 제어하는데 사용한다. 제어 신호로 연산장치의 연산 종류와 메인 메모리의 읽기나 쓰기 동작을 결정한다.
시간 레지스터 동작 설명
1 PC -> MAR PC에 저장된 주소를 프로세서 내부 버스를 이용하여 MAR에 전달한다.
2 Memory_mar -> MAR MAR에 저장된 주소에 해당하는 메모리 위치에서 명령어를 인출한 후 이 명령어를 MBR에 저장한다. 이때 제어장치는 메모리에 저장된 내용을 읽도록 제어신호를 발생시킨다.
PC + 1 -> PC 다음 명령어를 인출하려고 PC를 증가한다.
3 MBR -> IR MBR에 저장된 내용을 IR에 전달한다.
    %PC: 프로그램 카운터, MAR: 메모리 주소 레지스터, MBR: 메모리 버퍼 레지스터, IR: 명령어 레지스터
  • 주변 장치
    • 종류
      • 입력장치
        • 마우스
        • 키보드
        • 터치스크린
        • 카메라 등
      • 출력장치
        • 모니터
        • 프린터
        • 스피커 등
      • 저장장치
        • USB, CD, HDD, SDD 등
    • 주변장치와 운영체제
      • 장치 드라이버 관리
        • 주변장치 사용을 위한 인터페이스 제공
      • 인터럽트(Interrupt) 처리
        • 주변장치의 요청 처리
      • 파일 및 디스크 관리
        • 파일 생성 및 삭제
        • 디스크 공간 관리 등

+ Recent posts