컴퓨터 구조와 운영체제
컴퓨터 구조
- 중앙처리장치 (CPU)
1. ALU (산술논리연산장치)
2. Control Unit (제어 장치)
3. 레지스터
- 주기억장치 (메모리)
- 보조기억장치
- 입출력장치
* 위 모든 장치는 시스템 버스와 연결 (주소 버스, 데이터 버스, 제어 버스를 통해 통신함)
CPU 구조
- ALU: 연산/계산을 담당
- 레지스터: 임시 저장 장치로 프로그램에 실행하는데 필요한 값을 저장
- 제어장치: 컴퓨터의 각 부품들에 제어 신호를 보내고 명령어를 해석(메모리 읽기, 쓰기)
프로그램 실행 과정
저장할 데이터: 데이터 버스
메모리 읽기/쓰기 신호: 제어 버스
저장할 주소: 주소 버스
IP(Instruction Register): 현재 실행할 명령을 저장
IR(Instruction Pointer): 다음에 실행될 명령의 주소 저장
명령어의 구조
- 번역된 프로그램은 어셈블리 혹은 기계어로 된 명령어 집합임
- 연산 코드(Op Code): 데이터 전송, 산술/논리 연산, 제어 흐름 변경, 입출력 제어 etc
- 피연산자(Operand, 연산 대상이 되는 데이터): 연산에 필요한 데이터 혹은 데이터가 저장된 위치
* Operand 필드 = 주소 필드
피연산자는 0~3개가 있을 수 있음
Operand의 주소 지정 방식
- 즉시 주소 지정 방식: 연산에 필요한 데이터를 주소 필드에 직접 명시
- 직접 주소 지정 방식: 주소 필드에 유효한 주소를 명시하고, 해당 주소에는 데이터를 저장
(하지만 지정할 수 있는 주소의 범위가 제한됨)
- 간접 주소 지정 방식: 주소 필드에 유효한 주소를 저장하고, 해당 주소에서 다시 연산에 사용할 데이터의 주소를 찾아 가는 방식
- 레지스터 주소 지정 방식 (직접 주소 지정 방식과 유사)
- 레지스터 간접 주소 지정 방식 (간접 주소 지정 방식과 유사)
운영체제의 진화
- 한번에 하나의 프로그램만 실행
- 하드웨어에 대한 완벽한 제어 권한을 가짐
- 사용자는 컴퓨터 앞에서 직접 프로그램을 실행함
* 단일 사용자, 단일 프로그램
* 악의적인 사용자 x, 프로그램 간의 상호작용이 없으므로 프로그램이나 컴퓨터 시스템을 보호할 필요 x
- 단점: 비싸고, 자원 사용 효율성 낮음
* 멀티 프로그래밍의 발명
- 다수의 프로그램을 메모리에 탑재 후 하나의 프로그램이 대기 중일때 다른 프로그램을 실행함
- 최초의 멀티프로그래밍은 배치(Batch)시스템으로 시작하여 시분할(Time-sharing)시스템으로 발전
* 문제점: 여러 프로그램이 동시에 동작해서 운영체제는 프로그램끼리 보호하고, 운영체제 자체도 프로그램으로부터 보호해야함
* 배치시스템
– 처리해야할 작업을 큐(Queue, 대기열)에 넣고 CPU가 계속 동작하게 함
– 운영체제는 하나의 작업이 수행되는 중 다른작업을 메모리에 탑재함
– 사용자는 작업처리를 요청하고 기다리면 운영체제가 작업수행 후 통보
시분할(Time-sharing) 운영체제
- 여러 사용자가 하나의 컴퓨터를 동시에 사용
- 사용자의 요청에 빠르게 대응하여 응답성 향상
- 컴퓨터 비용이 감소함에 따라 사용자의 시간이 더 중요해짐
운영체제의 정의
- 운영체제는 컴퓨터 하드웨어와 사용자 사이에서 중재 역할을 수행하는 프로그램의 일종
- 사용자 프로그램을 실행하고, 관리 또한 컴퓨터 시스템(HW & SW)를 사용할 수 있는 기능 제공
- 컴퓨터 시스템을 추상화하여 프로그램과 사용자에게 제공
운영체제의 역할
<심판(Referee)>
- 사용자가 프로그램 사이에서의 자원 할당
- 서로 다른 사용자 및 프로그램 간의 격리 및 보호
- 사용자 및 프로그램 간의 통신
• 컴퓨터 시스템 자원을 사용하기 위한 방법
– 방법1: 컴퓨터 시스템이(알아서) 직접 자원을 배분
– 방법2: 사용자(프로그램)가 필요한 만큼의 자원을 요청
• 사용자가 거짓말을 한다면?
• 사용자가 필요한 자원을 미리 알수없다면?
– 방법3: 피드백(문답)을 통하여 필요한 자원을 알아내어 자원 배분
• 정상적으로 자원을 많이 사용하는 경우와 악의적으로 많이 사용하는 경우는 어떻게 구분하는가?
– 예: 핫딜로 사용자가 급격히 늘어난 경우 vs. DDoS 공격으로 트래픽이 늘어난 경우
<마술사(Illustionist)>
- 컴퓨터 시스템의 자원이 무한한 것처럼 확장함
* CPU, 메모리, 입출력 장치 등
• 운영체제는 자원에 대한 환상을 제공
- 프로그램은 자신만의 CPU, 메모리, 입출력장치 등 하드웨어를 가짐
- 유한한 자원을 무한한 것처럼 보이게함
- 프로그램에서 사용하는 주소는 실제 메모리 주소와는 다름
<접착제(Glue)>
- 새로운 HW & SW라도 컴퓨터에서 사용 가능하게 함
•사용자 및 프로그램에 하위 요소에 대한 추상화 제공
- 하드웨어에 대한 추상화
•하드웨어에 대한 직접 제어가 아닌 표준화된 인터페이스를 통해 제어
•프로그램과 하드웨어의 분리
- 새로운 HW가 나오더라도 표준 인터페이스를 통해 기존 운영체제에서 사용할 수 있음
- 운영체제에 대한 추상화
•운영체제의 기능을 추상화하여 프로그램에 대한 이식성 향상
'KNU Freshman > 컴퓨터학개론' 카테고리의 다른 글
(7) 운영체제에서의 CPU 스케줄링 (1) | 2024.04.15 |
---|---|
(6)-2 운영체제의 주요 기능 (0) | 2024.04.15 |
(5) 프로그램의 번역 (0) | 2024.04.11 |
(4) 프로그램 구조 (0) | 2024.04.11 |
(3) 프로그래밍 언어의 역사 (0) | 2024.04.11 |