운영체제의 소개

컴퓨터 시스템
Windows, Linux, Unix

스마트폰 시스템
Android, Ios

운영체제(Operating System)
컴퓨터를 동작시키는 Software

컴퓨터 시스템

하드웨어(Hardware)와 소프트웨어(Software)로 구성

하드웨어(Hard)

데이터를 처리하는 물리적인 기계 장치
프로세서(중앙처리장치), 버스, 메모리 등 다양한 주변장치로 구성

소프트웨어(Software)

특별한 작업 지시를 위해 명령어로 작성한 프로그램

운영체제

컴퓨터 하드웨어와 사용자 사이에 위치
하드웨어와 소프트웨어 자원을 관리하는 프로그램

컴퓨터 시스템의 핵심 요소와 운영체제

스크린샷 2023-09-06 164042

컴퓨터 시스템 구성요소

프로세서(Processor)

운영체제와 가장 밀접한 하드웨어
각 부분의 동작 제어 및 연산 수행

중앙처리장치(CPU: Central Processing Unit)
레지스터, 산술 논리 연산장치, 제어장치 등으로 구성

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

프로세서 구성요소

스크린샷 2023-09-06 165445

버스(Bus)

프로세서를 포함한 각 장치 간 또는 서브시스템을 서로 연결하여 정보(데이터)를 주고받을 수 있게 해주는 통로

컴퓨터 내부 각 요소의 다양한 신호
데이터 입출력 신호, 프로세서 상태신호, 인터럽트 요구와 허가 신호, Clock신호 등 공동 통신채널, 즉 버스를 통해 전달됨

버스의 위치에 따른 분류

내부 버스

프로세서 내부에서 레지스터, 연산장치, 메모리와의 인터페이스 등 연결
시스템 버스 인터페이스 회로를 통해 외부 버스와 연결

외부 버스

프로세서와 메모리, 프로세서와 입출력장치, 입출력 장치와 입출력장치연결
시스템 버스라 부르며 각 시스템 버스는 버스 제어기라 불리는 제어 회로를 가짐

버스의 기능에 따른 분류

데이터 버스

컴퓨터 시스템에서 데이터(자료), 명령어 등의 정보를 교환하는 전송로
프로세서에서 메모리나 입출력 장치로 데이터 출력 또는 반대로 데이터를 입력 받을 때 사용하는 양방향 버스
데이터 버스 신호선의 수가 해당 프로세서의 워드 길이와 같으므로 프로세서 성능을 결정

주소 버스

하나의 시스템 장치에서 다른 장치로 주소 정보를 전송하기 위해 사용
신호(주소)선의 수에 따라 최대 사용 가능한 메모리 용량이나 입출력장치 수를 결정

제어 버스

프로세서가 저장장치와 입출력장치에 데이터를 전송할 때, 현재 수행중인 작업 종류나 상태를 다른 장치에 알릴 때 이용하는 단반향 버스

스크린샷 2023-09-06 170848

레지스터(Register)

프로세서에 위치한 고속 메모리로 프로세서가 바로 사용할 수 있는 데이터 저장

특수한 값 하나를 저장하는 기억 공간으로 사용
컴퓨터의 구조에 따라 크기 및 종류가 다양
용도에 따라 전용 레지스터와 범용 레지스터, 저장되는 정보의 종류에 따라 데이터 레지스터, 주소 레지스터, 상태 레지스터로 나뉨
사용자가 저장한 정보의 변경 여부에 따라 2가지로 분류

  • 사용자 가시 레지스터(User-Visible Register)
  • 사용자 불가시 레지스터(User-Invisible Register)

사용자 가시 레지스터(User-Visible Register)

운영체제(시스템)와 사용자 프로그램을 통해 접근 가능한 데이터와 주소, 일부 조건 코드를 보관

사용자 불가시 레지스터(User-Invisible Register)

프로세스의 제어와 상태 관리
프로그램 카운터, 명령어 레지스터, 프로그램 상태 레지스터, 메모리 주소 레지스터, 메모리 버퍼 레지스터 등이 속함

메모리(Memory)

메모리 계층 구조

메모리 계층 구조는 1950년 ~ 1960년대 메인 메모리의 높은 가격으로 인해 제안된 방법으로, 다양한 레벨의 메모리를 연결하여 비용, 속도, 용량, 접근 시간 등을 상호 보완한 것

스크린샷 2023-09-06 171530

메인 메모리를 중심
아래 : 자기 디스크, 광학 디스크, 자기 테이프
위 : 캐시와 레지스터
다양한 메모리를 효과적으로 이용해 시스템의 성능 향상을 위해 사용

자기 디스크 : 대용량
광학 디스크 : 이동이 편리
자기 테이프 : 파일을 저장하기 위해 속도가 느림
캐시 : 메인 메모리와 프로세서의 속도 차를 보완
레지스터 : 프로세서가 사용할 자료를 보관하며 가장 빠름

메모리 참조가 지역성(국부성)이라는 특징을 가지는 것을 가지는 것을 활용하여 메모리 계층 구조 이용

지역성
실행 중인 프로세서가 실행기간 동안 메모리 정보를 균일하게 접근하지 않고 블록 중 일부만 집중적으로 참조하는 현상

발생 이유

  • 프로그램은 명령어를 순차적으로 실행하는 경향이 있으므로 명령어는 특정 지역 메모리에 인접해 있음
  • 프로그램은 순환(단일 순환, 중첩된 순환 등)의 반복이지만 메모리 참조 영역은 일부 영역에 국한됨
  • 대부분의 컴파일러는 메모리에 인접한 블록, 즉 배열로 저장하므로 프로그램은 배열 원소를 순차 적으로 자주 접근하게 되어 지역적인 배열 접근 경향

메인 메모리

고유 주소를 가진 워드나 바이트로 구성된 대규모의 배열로, 주소를 읽거나 기록함으로써 상호 작용한다는 특성을 가짐

메인 메모리 역할
스크린샷 2023-09-06 171936

  1. 프로세서
    메인 메모리로부터 처리할 데이터를 가져오거나 처리한 결과를 메인 메모리에 저장
  2. 입출력장치
    메인 메모리에서 데이터를 받거나 저장

다수의 셀(Cells)로 구성되며 각 셀들은 비트들로 구성
메인 메모리에 데이터 저장 시 셀 하나 또는 여러 셀에 나뉘어 저장
셀은 주소에 의해 참조됨

  • 셀이 K비트 일 경우 2K값을 저장
  • n비트일 경우 참조 주소 범위는 0~2n-1

스크린샷 2023-09-06 172245

물리적 주소 공간

컴퓨터에 주어진 주소 공간
프로그래머는 직접 사용하지 않고 수식, 변수를 이용

논리적 주소 공간

컴파일러에 의해 기계어로 변한된 변수와 명령어에 할당되는 주소
별도의 주소 공간에 나타남

컴파일

원시 프로그램을 기계 명령어로 변환하는 처리 과정
컴파일러가 논리적 주소를 물리적 주소로 변환

메모리 속도는 어떤 동작의 시작과 종료 사이의 경과 시간으로 메모리 접근 시간과 메모리 사이클 시간으로 표현

메모리 접근 시간 : 명령 발생 후 목표 번지를 검색하여 데이터 쓰기 읽기를 시작할 때까지의 시간

메모리 사이클 시간 : 두 번의 연속적인 메모리 동작 사이에 필요한 최소 지연 시간

일반적으로 사이클 시간이 접근 시간보다 약간 크며 메모리의 세부 구현 방법에 따라 달라짐

스크린샷 2023-09-06 172611

프로세서와 메모리 사이의 접근 속도 차가 커짐에 따라 메인 메모리의 부담을 줄이기 위해 프로세서 칩 안이나 외부에 별도의 캐시를 구현

스크린샷 2023-09-06 172719

가상 메모리(Virtual Memory)

메인 메모리의 유효 크기를 늘리는 기법
보조기억장치에 프로그램이나 데이터를 저장했다 필요 시 다시 메인 메모리로 이동시키는 기술

  • 메인 메모리의 공간 부족으로 현재 실행 중인 프로그램이나 데이터를 저장 할 수 없을 때 가상 메모리를 이용
  • 프로그램과 데이터를 보조기억장치에 일부 저장한 후 필요 시 다시 메인 메모리로 옮겨 실행

가상 메모리의 특징을 활용하기 위해 실행 중인 프로세스가 참조하는 주소와 메인 메모리에서 사용하는 주소를 분리해야 함

매핑(사상, Mapping), 메모리 맵(Memory Map)
논리적 주소를 물리적 주소로 변환하는 과정

스크린샷 2023-09-06 173042

메인 메모리보다 큰 저장 용량의 주소를 지정 가능

  • 프로그램을 부분 적재하여 실행할 수 있음
  • 실제 수행 중인 부분만 실제 메인 메모리로, 그 외 보조기억장치로 매핑

스크린샷 2023-09-06 173200

캐시(Cache)

처리 속도가 빠른 프로세서와 상대적으로 느린 메인 메모리 사이에서 데이터나 정보를 저장하는 고속 버퍼

메인 메모리에서 일정 블록의 데이터를 가져와 워드 단위로 프로세서에 전달하여 정보를 빠르게 제공

데이터가 이동할 수 있는 통로(대역폭)을 확대하여 프로세서와 메인 메모리의 속도 차를 줄임

보통 크기가 8~64바이트 정도인 블록 여러 개로 구성
각 블록의 크기는 메인 메모리의 블록 크기와 같음

  • 메모리에 캐시를 결함한 캐시 메모리 시스템은 메모리 가격과 성능을 절충하고 메모리 때문에 발생하는 성능 저하를 줄여줌

스크린샷 2023-09-06 173718

캐시의 동작

  • 일반적으로 메인 메모리의 주소는 태그(Tag) 영역과 주소 영역 등을 나타내는 연속된 값으로 구성
  • 캐시는 메인 메모리 주소 영역을 한 번 읽어 들일 수 있는 라인 크기로 나눈 후 각 블록에 번호를 부여한 후 태그로 번호를 저장
  • 프로세서가 메인 메모리 접근이 필요할 때 먼저 캐시를 조사하여 캐시 태그와 메모리 주소의 태그 영역을 비교, 원하는 블록을 찾음
  • 읽기 연산일 경우
    1. 캐시 적중(Cache Hit)시 캐시는 데이터 라인에서 요청한
    1. 데이터를 읽어 프로세서로 전송

스크린샷 2023-09-06 173953

주변 장치

컴퓨터의 기능을 향상시키기 위한 추가 장비
입력 장치, 출력 장치, 보조기억장치, 스캐너, 모뎀 등

  • 보조기억 장치
    • 플로피 디스크, 하드 디스크, CD/DVD, 테이프 드라이브 등