<개인공부>/[Operating System]

[운영체제] OS의 정의와 컴퓨터 구조

BlockDMask 2017. 7. 6. 11:15
반응형

0. 운영체제(OS)의 정의


운영체제, Operating System이라 한다.

- 하드웨어와 응용 프로그램 사이에서 관리?중재역할? 를 해주는 시스템 소프트웨어이다.

- 하는일 : 자원관리.

- 세부적으로 아는것만 말하자면 : 입출력 관리, 메모리할당, 스케줄링, 장치 드라이버 관리 등.

- 컴퓨터 구성에서 OS의 위치 : 하드웨어 <-> OS <-> 셸(bash..) / 응용 프로그램 <-> 사용자

- 종류 : Linux, Unix, Window OS, MAC OSX


1. 컴퓨터 시스템의 Main Components


- CPU <----> Cache <---------> Main Memory <----> Hard Disk

- CPU와 Cache 메모리는 Computer Architecture 부분에서 다루고

- Main Memory와 Hard Disk는 Operating System 부분에서 주로 다룬다.


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


1) CPU (Central Processing Unit)

: 중앙처리 장치로서, 컴퓨터의 연산을 담당, 데이터를 처리한다.

: CPU내부에는 ALU, Control Unit, Register set, Bus Interface가 존재한다.


2) Main Memory

: RAM 이라는 저장장치로 구성됨.

: 컴파일이 완료된 프로그램 코드가 올라가서 실행되는 영역, 프로그램이 실행 되기위해 존재하는 메모리.


3) I/O Bus

: 컴퓨터를 구성하는 구성요소 사이에서 데이터를 주고 받기위해 사용되는 경로.

: 데이터의 종류과 역할에 따라 Address Bus, Data Bus, Control Bus로 구분.



**32비트 컴퓨터와 64비트 컴퓨터의 구분

- 한번에 송.수신 할수 있는 데이터의 크기 & 한번에 처리 할수 있는 데이터의 크기 를 기준으로 구분한다.

- 한번에 버스로 이동하는 데이터의 크기가 32, 64인지

- CPU 내부에서 한번에 처리할 수 있는 데이터의 크기가 32, 64인지에 따라 구분한다.


3. CPU 내부


1) ALU (Arithmetic Logic Unit)

: 연산을 담당함 (산술연산 +-, 논리연산 AND, OR)

: 독립적으로 데이터 처리를 하지 못하여 레지스터(피연산자)와 조합하여 쓰인다.

: 연산결과를 레지스터중 하나에 저장한다.


2) Control Unit

: 프로그램을 컴파일하면 실행파일이 생성됨. 실행파일에는 CPU에게 일을 시키기 위한 명령어가 저장되어있다.

이러한 명령어들을 처리하고 그 해석한 결과에 따라 적절한 신호를 CPU의 다른 블록에 보내는 일을한다.

   : (좀 이해가 안가서 네이버에서 찾아봄 : 기억장치에 축적되어있는 프로그램의 명령을 적절한 순서로 꺼내고, 각 명령을 분석, 해석하여 산술 논리 연산장치(ALU나 다른 부분으로 적절한 신호를 준다.)

3) Register Set
: Control Unit 이 필요로 하는 명령어들과 ALU가 필요로 하는 피연산자들을 저장.
: CPU 내부의 임시 저장소(메모리)
: Register란 CPU 내부에 존재하는 2진 데이터 저장을 위한 저장장치이다. 크기가 큰 메인메모리, 하드디스크와 달리 CPU에 따라서 16,32,64 bit 정도의 데이를 저장 할 수 있는 크기로 나뉜다
: 컴퓨터의 주기억장치는 데이터와 명령을 기억하고 있을 뿐. 그래서 ALU가 연산을 할때 데이터나 명령을 일시적으로 기억해둘 장소가 필요하다. 그 기억해줄 장소가 Register 이다.

4) Bus Interface
: CPU 내에있는 I/O(입출력) 버스의 통신방식을 알고 있는 무언가
: 버스가 어떻게 데이터를 전송하는지, 그에 대한 프로토콜 또는 통신방식을 알고있음
: CPU는 Bus Interface를 통해 Register에 저장된 Data를 I/O버스에 보내거나 받는다.
: 모든 장치에는 Bus Interface가 있다. (Controller, Adapter 라고도 불림)

5) Clock Pulse
: 시스템 내의 장치나 회로 등을 동기화 하는데 사용되는 주기적 신호
: CPU의 클럭 속도가 높으면 초당 처리하는 명령어의 개수가 많아 지므로 전체적인 성능이 좋아짐.


4. 프로그램의 실행과정

: 폰 노이만이 현재의 컴퓨터 구조인 내장 메모리에 저장되는 구조순차적으로 실행되는 구조를 구상했다.
 
(Stored Program Concept)

: 프로그램은 (전처리기 -> 컴파일러 -> 어셈블러 -> 링커) 순으로 실행이 된다.
i) 전처리기에 의해 치환작업 (#같은 지시자)
ii) 컴파일러에 의한 번역 (소스코드 -> 어셈블리코드)
iii) 어셈셈블리어에 의한 바이너리 코드 생성
iv) 링커에 의한 연결.

: 링크 과정을 거치고 실행파일(exe)이 생성된다.

: 프로그램의 실행과정
->파일을 실행하면 Main Memory에 Load가 된다.
-> Fetch 과정을 통해 메모리에 있는 명령어를 CPU의 IR(Instruction Register)로 가지고온다.(저장한다)
-> 가지고온 명령어를 CPU의 Control Unit이 Decode 과정을 거쳐서 해석한다.
-> 해석한 명령어를 명령대로 CPU가 처리한다.(Execution 과정) 연산들은 ALU에서 한다.

: 하드웨어끼리의 data 전송은 버스 시스템을 이용한다. (ex. CPU와 Memory사이의 Fetch과정)
-> 버스는 Data Bus, Address Bus, Control Bus 이렇게 세가지의 버스가 존재한다.


**학교에서 학습한 것과, 참고서적 및 구글링을 통해 공부하면서 정리한 내용입니다.
내용이 이상하거나 지적할 사항들은 말씀해주시면 수정하겠습니다.

**참고 서적 : 윤성우, 『뇌를 자극하는 윈도우즈 시스템 프로그래밍』, 한빛미디어, 2007.03.30

**참고 링크

반응형