학은제 수업 1주차로 운영체제의 구성과 요소, 운영체제의 역할과 목적 등을 공부한다.
1. 운영체제의 소개
하드웨어(Hardware) 와 소프트웨어(Software)로 구성되어 있다.
하드웨어(H/W)
- 데이터를 처리하는 물리적인 기계 장치
- 프로세서(중앙처리장치), 버스, 메모리 등 다양한 주변 장치로 구성
소프트웨어(H/W)
- 특별한 작업 지시를 위해 명령어로 작성한 프로그램
운영체제
- 컴퓨터 하드웨어와 사용자 사이에 위치 ( 인터페이스를 제공한다.)
- 하드 웨어와 소프트 웨어 자원을 관리하는 프로그램
1.1 컴퓨터 시스템의 핵심요소
CPU 중앙처리 장치
- 실제 계산을 하고 결과를 도출하는 위치
- 주기억장치에 있는 실제 데이터를 처리한다. ( 주기억장치에 위치해야만 CPU에서 처리할 수 있다.)
RAM 주 기억 장치
- 계산을 하기 위한 실제 데이터의 저장 위치
- 전원이 꺼지면 데이터가 소멸된다. ( 휘발성 )
HDD 보조기억장치
- RAM이 소멸한 데이터를 보조기억장치에 저장시켜 사용하게 된다.
2. 컴퓨터 시스템의 구성요소
2.1 프로세서(Processor)
- 운영체제와 밀접한 H/W - 각 부분에 동작제어 및 연산 수행
- 중앙처리장치(CPU) - 레지스터, 산술 논리 연산장치, 제어장치 등으로 구성
- 마이크로 프로세서 - 개인용 컴퓨터에서 이용
2.2 버스(BUS)
프로세서를 포함한 각 장치 간 또는 서브 시스템을 서로 연결하여 정보(데이터)를 주고 받을 수 있게 해주는 통로
데이터가 지나다닌 버스를 데이터버스 라고 한다.
1. 주소버스
- 하나의 시스템 장치에서 다른 장치로 주소 정보를 전송하기위해 사용
- 신호(주소)선의 수에 따라 최대 사용 가능한 메모리 용량이나 입출력장치 수를 결정
2. 제어버스
- 프로세서가 저장 장치와 입출력 장치에 데이터를 전송할 때, 현재 수행중인 작업 종류나 상태를 다른 장치에 알릴 때 이용하는 단방향 버스
2.3 레지스터( 기억장치 )
프로세서에 위치한 고속 메모리로 프로세서가 바로 사용할 수 있는 데이터저장
1. 사용자 가시 레지스터
- 운영체제(시스템)와 사용자 프로그램을 통해 접근 가능한 데이터와 주소, 일부 조건 코드를 보관
2. 사용자 불가시 레지스터
- 프로세스의 제어와 상태관리
- 프로그램 카운터, 명령어 레지스터, 프로그램 상태 레지스터, 메모리 주소 레지스터, 메모리 버퍼 레지스터 등이 속함
2.4 메모리
메모리참조가 지역성(국부성)이라는 특징을 가지는 것을 활용하여 메모리 계층 구조 이용
중심은 메인 메모리이다. ( 고유 주소를 워드나 바이트로 구성된 대규모의 배열)
아래 : 자기 디스크, 광학 디스크, 자기 테이프
위 : 캐시, 레지스터
레지스터 : 프로세서가 사용할 자료를 보관하며, 가장 빠름
캐시 : 메인 메모리와 프로세서의 속도 차 보완
CPU가 계산할 데이터를 시스템에 넘겨주고 CPU와 하드디스크의 속도의 차이를 중계 해준다.
2.4.1 메인 메모리의 역할
1. 프로세서
- 메인 메모리로부터 처리할 데이터를 가져오거나 처리한 결과를 메인메모리에저장
2. 입출력장치
- 메인 메모리에서 데이터를 받거나 저장
메인메모리의 처리 순서
입출력 장치에서 입출력된 내용을 메인 메모리가 받아 CPU에 던져준다.
CPU 의 값을 메인 메모리가 가지고 있다가 프로그램이 종료되면, 다시 입출력 장치를 통해 출력 하거나,
보조기억장치에 저장한다.
2.4.2 메인 메모리의 주소 지정
다수의 셀(Cells)로 구성되며 각 셀들은 비트들로 구성
메인 메모리에 데이터 저장 시 셀 하나 또는 여러 셀에 나뉘어 저장
셀은 주소에 의해 참조됨
- 셀이 K비트 일 경우 2K값을 저장
- n비트일 경우 참조 주소 범위는 0~2n-1
물리적 주소 공간
- 컴퓨터에 주어진 주소 공간
- 프로그래머는 직접 사용하지 않고 수식, 변수를 이용
논리적 주소 공간
- 컴파일러에 의해 기계어로 변환된 변수와 명령어에 할당되는 주소
- 별도의 주소 공간에 나타남
컴파일
- 원시 프로그램을 기계 명령어로 변환하는 처리 과정
- 컴파일러가 논리적 주소를 물리적 주소로 변환
2.4.3. 프로세서와 메모리 사이의 접근
프로세서와 메모리 사이의 접근 속도차가 커짐에 따라 메인 메모리의 부담을 줄이기 위해 프로세서 칩 안이나 외부에 별도의 캐시를 구현
2.4.4 가상 메모리
메인 메모리의 유효 크기를 늘리는 기법
- 보조기억장치에 프로그램이나 데이터를 저장했다가 필요 시, 메인 메모리에 있는 것 처럼 속여서 가동시킨다.
가상 메모리의 특징을 활용하기 위해 실행중인 프로세스가 참조하는 주소와 메인 메모리에서 사용하는 주소를 분리해야 한다.
가상 메모리는 가짜이기 때문에 실제 주소를 사용하지 못하므로 가상 메모리를 위한 가짜 주소와 주기억장치 or 보조기억장치에 존재하는 실제 주소사이에 연결점이 필요하다. 이를 매핑(mapping) 이라 한다.
메인 메모리보다 큰 저장용량의 주소를 지정 가능하다.
- 프로그램을 부분 적재하여 실행할 수 있음
- 실제 수행 중인 부분만 실제 메인 메모리로, 그 외 보조기억장치로 매핑
2.5 캐시
처리속도가 빠른 프로세서와 상대적으로 느린 메인 메모리 사이에서 데이터나 정보를 저장하는 고속 버퍼
메인 메모리에서 일정 블록의 데이터를 가져와 워드 단위로 프로세서에 전달하여 정보를 빠르게 제공
2.5.1 캐시의 동작
- 일반적으로 메인 메모리의 주소는 태그(Tag) 영역과 주소 영역등을 나타내는 연속된 값으로 구성
- 캐시는 메인 메모리 주소 영역을 한번 읽어들일 수 있는 라인크기로 나눈 후 각 블록에 번호를 부여한 후 태그로
번호를 저장 - 프로세서가 메인 메모리 접근이 필요할 때 먼저 캐시를 조사하여 캐시태그와 메모리 주소의 태그 영역을 비교, 원하는 블록을 찾음
읽기 동작의 경우
1. 캐시적중(Cache Hit) : 캐시는 데이터 라인에서 요청한 데이터를 읽어 프로세서로 전송
2. 캐시실패(Cache Miss) : 캐시 제어기는 메인메모리에서 해당 블록을 읽어 캐시에 넣고 프로세서로 전송