컴퓨터 시스템 개관

Download Report

Transcript 컴퓨터 시스템 개관

컴퓨터 시스템 개관
시스템 프로그래밍 - Lecture #1
신라대학교 컴퓨터공학과 시스템 프로그래밍
컴퓨터 시스템의 구성(1)

컴퓨터 시스템의 구성 요소


하드웨어(Hardware)
소프트웨어(Software)
 시스템 소프트웨어(System Software)
 미들웨어(Middleware)
 응용 소프트웨어(Application Software)

2
통신망(Communication Network)
신라대학교 컴퓨터공학과 시스템 프로그래밍
컴퓨터 시스템의 구성(2)
컴퓨터시스템
응용 소프트웨어
응용 소프트웨어
미들웨어
미들웨어
통신망
3
시스템소프트웨어
시스템소프트웨어
하드웨어
하드웨어
컴퓨터
컴퓨터
신라대학교 컴퓨터공학과 시스템 프로그래밍
하드웨어(Hardware)

논리회로 수준



보드(혹은 기능적인 요소) 수준




중앙처리장치
기억장치
입출력장치 등
시스템 수준


4
SSI(<10 gates/chip), MSI(<100)
LSI(<1000), VLSI(>10000)
마이크로컴퓨터, 워크스테이션
중형컴퓨터, 대형컴퓨터 등
신라대학교 컴퓨터공학과 시스템 프로그래밍
소프트웨어(Software)

시스템 소프트웨어(System Software)



5
운영체제, 어셈블러, 컴파일러, 유틸리티, 통신 프로토콜 등
미들웨어(Middleware)

통신, 데이터베이스 응용

사용자 인터페이스, 트랜잭션 처리, 분산지원(CORBA) 등
응용 소프트웨어(Appware)

산업, 비즈니스, 일반, 내장형 응용

컨텐츠(contents)와는 구별
신라대학교 컴퓨터공학과 시스템 프로그래밍
펌웨어




6
Software stored in read-only memory (ROM) or
programmable ROM (PROM)
Easier to change than hardware but harder than
software stored on disk
Firmware is often responsible for the behavior of
a system when it is first switched on
A typical example would be a "monitor" program
in a microcomputer which loads the full operating
system from disk or from a network and then
passes control to it
신라대학교 컴퓨터공학과 시스템 프로그래밍
하드웨어와 통신망
7

용어 : 아키텍쳐 & 구조

하드웨어의 구성

중앙처리장치

기억장치

입출력장치

컴퓨터 통신망
신라대학교 컴퓨터공학과 시스템 프로그래밍
용어: 아키텍쳐 vs. 구조 (1)
(Architecture vs. Organization)

아키텍쳐 (Architecture)

세가지 의미
 명령어 집합(Instruction Set) + 입출력연결기능(I/O Capability)
 구조 (Organization, Structure)
 두개의 계층사이에서 위 계층에서 본 아래 계층의 기능적인 모양
 예: 하드웨어 아키텍쳐, 입출력 아키텍쳐 등
8
응용 소프트웨어
CPU+기억장치
시스템소프트웨어
입출력 제어장치
하드웨어
입출력 하드웨어
신라대학교 컴퓨터공학과 시스템 프로그래밍
용어: 아키텍쳐 vs. 구조 (2)
(Architecture vs. Organization)


9
구조 (Organization)

구현의 입장에서 본 컴퓨터의 논리적 혹은 물리적 블록과 그들
사이의 연결 형태

흔히 말하는 ‘컴퓨터 아키텍쳐’와 동일한 의미로 사용
구현 (Implementation, Realization)

실제로 구현된 상태

어떤 부품을 사용하여 주어진 구조의 명세를 구현하는가에
따라 달라진다
신라대학교 컴퓨터공학과 시스템 프로그래밍
용어: 아키텍쳐 vs. 구조 (3)
(Architecture vs. Organization)

10
예:
피아노
시계
마이크로
프로세서
아키텍쳐
건반
시침/분침/초침
을 갖는 시계판
명령어셋 +
입출력 기능
구조
연주용
가정용
벽시계
손목시계
다른 구조를 갖는
마이크로
프로세스
구현
실제 사용된
부품
태엽
배터리
다른 논리회로나
반도체 집적 기술
신라대학교 컴퓨터공학과 시스템 프로그래밍
하드웨어의 구성(1)

폰 논이만 컴퓨터(Von Neumann Computer)

프로그램 내장형 컴퓨터

메모리에 명령어 및 데이터가 구분됨이 없이 같이 저장
 명령어의 실행으로 데이터를 처리

프로그램 카운터(PC)를 사용
 PC는 다음에 수행될 명령어의 위치를 가리키며, 명령의 인출 후에
자동적으로 증가

메모리는 데이터 저장 장소의 위치를 일련 번호(주소)에 의해
표시

참고: 하버드 아키텍쳐(Harvard Architecture)
 명령어와 데이터를 별도의 메모리에 저장하여 실행
11
신라대학교 컴퓨터공학과 시스템 프로그래밍
하드웨어의 구성(2)

기본 구성
자기디스크, 자기테이프 등
보조기억장치
CPU
입력장치
키보드, 마우스 등
출력장치
주기억장치
모니터, 프린터, 스피커 등
통신장치
통신망 접속 장치 등
12
신라대학교 컴퓨터공학과 시스템 프로그래밍
하드웨어의 구성(3)
Printer

기본 구성
Hard Disk
I/O Controller
CPU
I/O Controller
System Bus
Memory
Controller
Main Memory
13
신라대학교 컴퓨터공학과 시스템 프로그래밍
중앙처리장치(CPU) (1)

구성

산술논리 연산장치(ALU: Arithmetic Logic Unit)

제어 장치(Control Unit)

레지스터(Registers)
 프로그램 카운터(PC: Program Counter)
 상태 레지스터(Status Register)
 메모리 주소 레지스터(MAR: Memory Address Register)
 메모리 데이터 레지스터(MDR: Memory data register)
 명령 레지스터(IR: Instruction Register)
 범용 레지스터(General Purpose Register)
14
신라대학교 컴퓨터공학과 시스템 프로그래밍
중앙처리장치(CPU) (2)


15
주요 기능

기억장치로부터 명령/데이터를 인출 및 저장

명령의 해석 : 제어장치

명령의 실행 : ALU

입출력 연산 : I/O Operations
마이크로프로세서의 경우

대부분 CPU를 한 개의 칩에 탑재

캐쉬 등의 다른 유닛도 포함
신라대학교 컴퓨터공학과 시스템 프로그래밍
중앙처리장치(CPU) (3)

명령 주기(Instruction Cycle)

명령 인출(Instruction Fetch)
 PC의 주소에 저장된 명령어를 인출하여 IR에 저장

명령 실행(Instruction Execution)
 IR의 명령어를 분석하여 요구하는 연산을 실행
16
신라대학교 컴퓨터공학과 시스템 프로그래밍
기억장치(1)


17
명령 및 데이터의 저장장소

기본소자: 비트(bit)

기본 주소지정 단위: 바이트(byte)

기본 정보 단위: 워드(word)

주소(address), 위치(location), 내용값(contents)
주소공간(Address Space)

프로그램이 지정할 수 있는 단위 정보의 수

주소를 나타내기 위한 주소 비트의 수에 의해 결정

예: 주소 버스가 32 비트이면 232 = 4 GB
신라대학교 컴퓨터공학과 시스템 프로그래밍
기억장치(2)

기억장치의 계층 구조(Memory Hierarchy)
저장매체
일반적인 접근시간
데이터 처리율
CPU 레지스터
온칩 캐쉬
18
캐쉬 메모리
10~30 nsec
주기억장치
50~100 nsec
디스크캐쉬
70~500 nsec
하드디스크
10~50 msec
600~6000 KB/sec
플로피디스크
95 msec
100~200 KB/sec
CD-ROM
100~600 msec
150~1000 KB/sec
테이프
0.5 sec 이상
5~20 KB/sec(cartridge)
0.2~3
MB/sec(real-to-real)
신라대학교 컴퓨터공학과 시스템 프로그래밍
입출력장치(I/O Devices)


종류

사용자 인터페이스용 입출력 장치

보조기억장치

통신장치

입출력 버스

다른 처리장치와의 접속장치
입출력 처리 장치

19
입출력 연산을 전담
신라대학교 컴퓨터공학과 시스템 프로그래밍
컴퓨터 통신망(Computer Network)


구성

통신용 하드웨어

프로토콜 : 통신망 소프트웨어에 의해 구현
종류

유선 통신
 통신망(네트워크)
– 지역망(LAN: Local Area Network)
– 광역망(WAN: Wide Area Network)
 전화망
 케이블망

무선 통신
 무선지역망
20
신라대학교 컴퓨터공학과 시스템 프로그래밍
시스템 소프트웨어

하드웨어의 제어와 운영

프로그램의 작성과 처리
 컴파일러, 링크, 로더 등
21

운영체제

기타 시스템 소프트웨어
신라대학교 컴퓨터공학과 시스템 프로그래밍
하드웨어의 제어와 운영(1)

명제



주어진 기계를 어떻게 효율적으로 이용할 것인가?
하드웨어의 제어

프로그램에 의한 제어

프로그래밍 수단

프로그램의 작성과 처리
하드웨어의 운영

프로그램에 의한 처리장치, 메모리 등의 이용

운영체제
 하드웨어 시스템 구성 요소의 운영
 프로그램의 운영
22
신라대학교 컴퓨터공학과 시스템 프로그래밍
하드웨어의 제어와 운영(2)

하드웨어의 동작 제어

기계 명령에 의한 제어
일련의 기계어 명령을 차례로 입력
명령을 분석하여 어떤 게이트를 제어할 것인지 결정
게이트를 제어할 제어신호의 생성
ALU내의 전하의 흐름을 제어
23
신라대학교 컴퓨터공학과 시스템 프로그래밍
프로그램의 작성과 처리(1)

프로그래밍 수단: 프로그래밍 언어

기계어(Machine Code) : 숫자
 단점 – 코딩의 어려움

어셈블리어(Assembly Language) : 문자의 사용
 좀 더 코딩하기 쉬운 방법
 CPU의 구조에 대한 이해를 요구하기 때문은 코딩 어려움이 상존

고급 언어(High-level Language) : 자연어에 가까운 언어
 더욱 코딩하기 쉬운 방법
 단점 – 직접적인 제어신호 생성 불가
비능률적인 기계어 프로그램 생성

프로그램 개발 및 실행 도구의 사용
 운영체제, 유틸리티, 언어번역 프로그램 등
24
신라대학교 컴퓨터공학과 시스템 프로그래밍
프로그램의 작성과 처리(2)

프로그램 처리 소프트웨어

인터프리터(Interpreter -해석기)
 고급언어 프로그램의 각 명령을 직접 해석하여 실행함

번역기(Translator)
 컴파일러(Compiler) :
– 고급언어의 원시모듈  기계어의 목적모듈
 어셈블러(Assembler)
– 어셈블리어의 원시모듈  기계어의 목적 모듈

링커(Linker)
 프로그램 모듈간의 연결

로더(Loader) – 적재기
 프로그램 실행을 위하여 주기억장치에 적재
25
신라대학교 컴퓨터공학과 시스템 프로그래밍
프로그램의 작성과 처리(3)

고급언어 프로그램의 실행 절차
소스 파일
a.c
b.c
d.c
Compiler
목적 파일
a.o
b.o
d.o
libs
linker
실행 파일
(Loadable File)
t.exe
loader
26
Main
Memory
t.exe
CPU
신라대학교 컴퓨터공학과 시스템 프로그래밍
시스템 소프트웨어와
다른 구성 요소와의 관계
프로그래머
운영체제
프
로
그
램
실
행
환
경
제
공
프로그램 편집
에디터(편집기)
응용 프로그램
컴파일러
컴파일 & 링킹
기계어 프로그램
메모리에 적재
링커
로더
데이터 처리 장치
프로그램 실행
27
신라대학교 컴퓨터공학과 시스템 프로그래밍
운영체제 (1)

기능 및 특성

사용의 편의성 제공
 사용자-컴퓨터 인터페이스(HCI) 제공
 CUI or GUI

하드웨어 사용의 효율성 제고
 자원(CPU, 메모리, 입출력 장치 등)의 관리

상위 레벨 소프트웨어 운영 및 실행의 효율성 제고

적응성 지원
 새로운 컴포넌트나 시스템의 도입 허용
 개방형 시스템
28
신라대학교 컴퓨터공학과 시스템 프로그래밍
운영체제 (2)

구성

정적인 구성
 각종 기능을 갖는 프로그램의 집합
 프로세스 관리, 메모리 관리, 입출력 관리, 입출력장치 관리, 파일 관리,
초기화, 사용자 인터페이스 등

동적인 구성
 프로세스(Process) – 실행중인 프로그램
 프로세스 스케줄러(Process Scheduler)
– 프로세스가 일정한 순서대로 CPU에서 실행될 수 있도록 제어
 시스템 서비스
– 시스템 프로그램에서 제공하는 기능
 기타
– 초기화 , 입출력 등
29
신라대학교 컴퓨터공학과 시스템 프로그래밍
기타 시스템 소프트웨어 (1)



유틸리티(Utilities)

프로그램의 작성 및 실행을 지원

편집기, 디버거 등
라이브러리(Library)

그래픽, 통신, 기억공간관리 등의 기능을 수해하는 모듈의
집합체

프로그램 작성시에 라이브러리 루틴을 호출하여 실행

컴파일 또는 실행시에 링크
기타

30
데이터베이스 관리, 그래픽, 통신 등의 기능을 수행하는 커널
수준의 독립된 프로그램
신라대학교 컴퓨터공학과 시스템 프로그래밍
기타 시스템 소프트웨어 (2)
사용자
매크로
프로세서
링커
로더
하드웨어
운영
체제
펌웨어
화일
시스템
사용자
31
사용자
컴파
일러
어셈블러
응 용
램
프 로 그
사용자
신라대학교 컴퓨터공학과 시스템 프로그래밍
임베디드 시스템의 개요

마이크로프로세서 혹은 마이크로컨트롤러를
내 장 하 여 (embedded) 원 래 제 작 자 가 지 정 한
기능만을 수행하는 시스템

PC는 임베디드 시스템이라 하지 않는다

설계, 개발 시 고려사항
 Real-Time, Reactive
 Small Size, Low Weight
 Safe, Reliable
 Harsh Environment
 Cost Sensitivity
32
신라대학교 컴퓨터공학과 시스템 프로그래밍
임베디드 시스템의 활용

정보 가전 제품

핸드폰 및 PDA 다말기

공장 자동화 및 자동제어

첨단 특수 분야
33
신라대학교 컴퓨터공학과 시스템 프로그래밍