Download presentation
Presentation is loading. Please wait.
1
제 1장 시스템 소프트웨어의 개요
2
학습내용 컴퓨터시스템 및 하드웨어 구성 컴퓨터의 구성과 기능 시스템프로그램의 개요 시스템프로그램의 계층구조
프로그래밍언어의 계층구조와 종류 어셈블러,로더,매크로프로세서 컴파일러와 인터프리터,운영체제 학습목표 ㅇ컴퓨터시스템 및 하드웨어 구성에 대해 이해 ㅇ컴퓨터의 구성과 기능에 대해 이해한다. ㅇ시스템프로그램의 개요와 계층구조에 대해 이해한다. ㅇ프로그래밍언어의 계층구조와 종류에 관해 이해한다.
3
컴퓨터시스템의 구성 컴퓨터 하드웨어 소프트웨어 중앙처리장치 기억장치 입출력장치 시스템 소프트웨어 응용 소프트웨어
컴퓨터시스템의 구성과 기능 1) 컴퓨터시스템의 구성 컴퓨터시스템은 크게 나누어 하드웨어와 소프트웨어로 구분된다. 하드웨어는 중앙처리장치, 기억장치, 입출력장치로 구성되고 다시 중앙처리장치는 제어장치와 연산장치로 구성되며 기억장치는 주기억장치와 보조기억장치로 구성된다. 특히 중앙처리장치는 프로세서라고도 하며 컴퓨터시스템의 핵심으로 오늘날 개인용컴퓨터가 보편화됨에 따라 마이크로프로세서들이 널리 사용되고 있다. 소프트웨어는 사용자가 컴퓨터시스템을 쉽게 사용할 수 있도록 매개체 역할을 하는 시스템프로그램과 사용자가 특정한 작업을 위해 개발한 프로그램이나 전문 소프트웨어 업자에 의해 상업적으로 만들어진 패키지 등의 응용프로그램으로 나눌 수 있다.
4
컴퓨터의 구성과 기능 제어장치 입력장치 출력장치 데 이 정 터 보 연산장치 주기억 장치 명령어 해독 명령어의 실행지시
사칙연산,비교 1) 컴퓨터시스템의 구성 컴퓨터시스템은 크게 나누어 하드웨어와 소프트웨어로 구분된다. 하드웨어는 중앙처리장치, 기억장치, 입출력장치로 구성되고 다시 중앙처리장치는 제어장치와 연산장치로 구성되며 기억장치는 주기억장치와 보조기억장치로 구성된다. 특히 중앙처리장치는 프로세서라고도 하며 컴퓨터시스템의 핵심으로 오늘날 개인용컴퓨터가 보편화됨에 따라 마이크로프로세서들이 널리 사용되고 있다. 소프트웨어는 사용자가 컴퓨터시스템을 쉽게 사용할 수 있도록 매개체 역할을 하는 시스템프로그램과 사용자가 특정한 작업을 위해 개발한 프로그램이나 전문 소프트웨어 업자에 의해 상업적으로 만들어진 패키지 등의 응용프로그램으로 나눌 수 있다. 2) 컴퓨터시스템의 기능 입력장치를 통해 들어온 프로그램이나 데이터는 주기억장치에 보조기억장치에 저장된다. 보조기억장치에 저장된 프로그램이 실행되기 위해서는 주기억에 위치되어야 하고 주기억에 있는 프로그램의 각 명령은 제어장치에서 해석된 후 연산장치에서 해석된 명령에 따른 작업을 실행한 후 결과(정보)는 다시 기억장치에 저장하거나 출력장치로 내보낸다. 주기억 장치 프로그램의 저장 데이터의 저장 보조기억 장치
5
펌웨어 펌웨어는 PROM (programmable read-only memory) 내에 삽입되어, 영구적으로 컴퓨터 장치의 일부가 되는 프로그램이다. 펌웨어는 여느 소프트웨어와 같은 과정으로 만들어지며, 마이크로코드 시뮬레이션을 이용하여 테스트된다. 준비가 되면, 다른 소프트웨어처럼 배포될 수 있으며, 사용자가 특별한 사용자 인터페이스를 이용하여 PROM 내에 설치할 수 있다. 펌웨어는 때로 프린터나 모뎀 그리고 다른 컴퓨터 장치들의 성능을 높이기 위해 배포되기도 한다. IBM에서는 펌웨어라는 용어 대신에 마이크로코드라는 용어를 즐겨 사용한다.
6
프로세서의 개념 중앙처리장치의 중요 구성요소 오늘날 마이크로프로세서가 보편적 인텔 펜티엄(고급형), 셀러론(보급형)
AMD 에슬론, 썬더버드(듀론) 점점 고밀도, 고속, 병렬화 전체시스템을 제어하고 산술, 논리연산 수행 프로세서의 작업 순서를 프로그램이라 함
7
프로그래밍언어의 계층구조 컴퓨터 생산성 < 인간 번역 저급언어 고급언어 기 계 어 기호 언어 고급 자 연
3. 프로그래밍언어와 계층구조 프로그래밍언어는 크게 구분하여 자연어, 고급언어, 기호언어, 기계어로 나눌 수 있으며 기호언어나 기계어를 저급언어라고도 한다. 1) 자연어 인간이 사용하고 있는 언어로 수없이 많으나 이 모든 언어를 컴퓨터 상에서 사용될 수 없다. 다만 몇몇 언어에 대해서는 상당히 발전되어 컴퓨터가 인간의 말은 거의 인식할 수 있을 강력한 기능을 가지고 있다. 2) 고급언어 자연어보다는 강력하지 못하나 사용자가 컴퓨터에게 인간의 관점에서 작업을 지시할 수 있으며 인간이 사용하고 있는 언어와 비슷한 문법적 구조를 갖고 있는 언어라고 할 수 있다. 예를 들어 "X와 Y를 더해 Z에 저장하라"하는 자연어의 명령을 고급언어로 작성하면 아래와 같다. BASIC의 경우 : 10 Z = X + Y FORTRAN의 경우 : Z = X + Y C의 경우 : Z = X + Y; COBOL의 경우 : ADD X TO Y, MOVE Y TO Z 즉 같은 작업일지라도 프로그래밍언어마다 다를 수 있기 때문에 컴퓨터시스템의 입장에서 같을 수 있도록 컴파일러나 인터프리터가 번역 또는 해석을 해 주어야 한다. 저급언어 고급언어
8
프로그램밍 언어의 종류 저급언어: 프로세서에 따라 다름 * 기계어, 어셈블리어 고급언어: 프로세서에 무관
* 컴파일러 간에는 호환성이 없다. * COBOL, FORTRAN, PASCAL, C++ 3) 기호언어 고급언어보다 기계어와 가까우나 연상명령과 상징번지를 사용하여 프로그램을 작성하는 것으로 고급언어보다 실행효율은 높으나 프로그램의 작성이 쉽지 않으며 컴퓨터의 하드웨어적 특성에 따라 다를 수 있다. 예로 인털 프로세서를 이용하여 위의 고급언어인 Z = X + Y를 기호언어로 작성하면 아래와 같다. 즉 하나의 고급언어 명령은 여러개의 명령으로 나누어 진다. MOV AX, X ADD AX, Y MOV Z, AX 위에서 MOV나 ADD는 연상명령을 나타내고 AX는 프로세서내의 임시기억장치인 레지스터를 나타내고 있다. 4) 기계어 0과 1로 구성되며 기호언어와 1대 1의 대응관계를 가진다. 이 언어는 기호언어와 마찬가지로 컴퓨터마다 다를 수 있다.
9
시스템 소프트웨어의 개요 하드웨어의 관리 마이크로 코드화 사용자 편의의 지향 운영체제, 컴파일러, 유틸리티
시스템 소프트웨어를 작성하는 일을 시스템 프로그래밍이라 함
10
시스템 소프트웨어의 계층구조 사용자 사용자 링커 로더 어셈블러 응 램 용 프 로 그 사용자 사용자 매크로 프로세서 컴파
일러 하드웨어 운영 체제 펌웨어 화일 시스템 어셈블러 시스템프로그램은 그림과 같이 하드웨어를 둘러싸고 있으며 응용프로그램의 명령을 입력으로 받아 하드웨어를 제어하는 프로그램들의 집합으로 운영체제, 컴파일러, 어셈블러, 파일시스템, 링커, 로더, 매크로프로세서 등이 있다. 이 중 운영체제는 가장 하드웨어와 가까우면서 사용자가 시스템을 쉽게 이용할 수 있는 주요한 기능들을 담당한다. 따라서 시스템프로그램의 기능이 떨어질 경우 하드웨어의 성능이 뛰어날지라도 전제적인 사용환경이 열악할 수 있는 바 컴퓨터를 가장 효과적이고 효율적으로 이용하기 위해서는 다양한 시스템프로그램을 갖출 필요가 있다. 원시프로그램을 번역하기 위해서는 프로그래밍언어마다 다른 각각의 컴파일러나 인터프리터가 요구되고 컴퓨터를 쉽게 사용하기 위해서는 그래픽메뉴를 이용할 수 있는 운영체제가 요구되는 것이다. 오늘날 널리 사용되고 있는 비쥬얼 BASIC, 비쥬얼 C++와 같은 프로그래밍언어나 Windows와 같은 운영체제가 좋은 예가 될 수 있다. 응 램 용 프 로 그 사용자 사용자
11
시스템프로그램의 종류 어셈블러 매크로 프로세서 링커와 로더 트랜스레이터 (컴파일러) 운영체제 정보통신용어사전
12
어셈블러 기계어에 대응하는 기호사용 연상기계어라고도 함 어셈블리어를 기계어로 번역 목적프로그램의 생성 1) 어셈블러
기호언어로 작성된 원시프로그램을 기계어로 번역하는 시스템프로그램이다. 이 번역프로그램은 컴퓨터에서 사용된 프로세서에 따라 다른 것이 보통이다. 사용자의 기억을 돕는 기계어(mnemonic machine language)를 어셈블리 언어 또는 어셈블리어(assembly language)라 한다. 어셈블리어를 기계어로 자동적으로 변환해 주는 프로그램을 어셈블러라 하고, 어셈블러에 대한 입력을 원시 프로그램(source program)이라 하며, 출력은 그 프로그램의 기계어로 번역된 형태로서 목적 프로그램(object program)이라 한다.
13
어셈블리 프로그래밍의 예 고급언어 MOV AX, A ADD AX, B 어셈블리어 MOV C, AX C = A + B
레지스터 이름 MOV AX, A ADD AX, B MOV C, AX 어셈블리어
14
매크로프로세서 프로그램의 일부를 축약화 매크로 정의 매크로 호출 매크로 확장 3) 매크로프로세서
우리가 프로그램을 작성하다 보면 어느 일정한 루틴들이 반복되는 경우가 있다. 이러한 코딩의 번거로움을 피하기 위해 반복되는 부분을 하나의 이름으로 정의해(매크로 정의) 두고 반복되는 루틴들이 나타날 장소에 그 이름을 기술하는 것이다. 어셈블러가 원시프로그램을 번역하기 전에 정의된 이름이 나타나면(매크로 호출) 매크로프로세서는 그 이름으로 정의된 루틴을 가져와(매크로 확장) 대체시키게 된다.
15
링커와 로더 링커 여러 개로 나누어진 원시모듈들은 어셈블러에 의해 별도로 어셈블되어 각각 다른 목적모듈들로 만들어져 보조 기억 장치에 저장된다. 이 모듈들을 실행할 때는 링커로 연결 로더 목적프로그램을 주기억에 적재 프로그램의 실행 준비 기억장소를 적게 점유 절대적 적재와 재배치 적재 2) 로더 로더는 크게 절대로더와 재배치로더, 링킹로더로 나눌 수 있다. 절대로더는 프로그래머가 지정해준 주기억장치의 주소에 실행프로그램을 저장시키므로 주소가 잘못 지정될 경우 다른 프로그램을 파괴할 수 도 있다. 재배치로더는 번역된 실행프로그램을 빈공간에 적절하게 재배치되며 프로그램의 번지는 논리적이나 적재될 때 프로그램의 물리주소가 결정되도록 하는 로더이다. 또한 링킹로더는 여러 프로그램이 번역되여 목적모듈이 생성되어 있을 때 연결과 적재를 한꺼번에 수행하여 주기억에 재배치시키는 로더이다.
16
링커와 로더 어셈블러에 목적 프로그램을 기억장치에 저장하고 제어하는 기능을 부여한다면?
기억장소 낭비 (어셈블러의 크기가 크므로) 시간 낭비 (실행할 때마다 매번 기계어로 번역을 해야 하므로) 2) 로더 로더는 크게 절대로더와 재배치로더, 링킹로더로 나눌 수 있다. 절대로더는 프로그래머가 지정해준 주기억장치의 주소에 실행프로그램을 저장시키므로 주소가 잘못 지정될 경우 다른 프로그램을 파괴할 수 도 있다. 재배치로더는 번역된 실행프로그램을 빈공간에 적절하게 재배치되며 프로그램의 번지는 논리적이나 적재될 때 프로그램의 물리주소가 결정되도록 하는 로더이다. 또한 링킹로더는 여러 프로그램이 번역되여 목적모듈이 생성되어 있을 때 연결과 적재를 한꺼번에 수행하여 주기억에 재배치시키는 로더이다.
17
링커와 로더 . . 어셈블러 목적모듈 원시모듈 적재모듈 목적모듈 어셈블러 원시모듈 목적모듈 링커 목적모듈 목적모듈 어셈블러
2) 로더 로더는 크게 절대로더와 재배치로더, 링킹로더로 나눌 수 있다. 절대로더는 프로그래머가 지정해준 주기억장치의 주소에 실행프로그램을 저장시키므로 주소가 잘못 지정될 경우 다른 프로그램을 파괴할 수 도 있다. 재배치로더는 번역된 실행프로그램을 빈공간에 적절하게 재배치되며 프로그램의 번지는 논리적이나 적재될 때 프로그램의 물리주소가 결정되도록 하는 로더이다. 또한 링킹로더는 여러 프로그램이 번역되여 목적모듈이 생성되어 있을 때 연결과 적재를 한꺼번에 수행하여 주기억에 재배치시키는 로더이다. 주 기억 장치 로더 실행 적재모듈
18
절대 적재시 기억장소의 할당 기억장치 기억장치 SQRT SQRT 프로그램 파괴 프로그램2 프로그램1
19
재배치 (relocation) 프로그램들이 기억장치 내의 임의의 장소에 적재될 수 있도록 조정
프로그램을 위한 기억 장소 할당(allocation) 목적 프로그램간의 기호적 호출 연결(linking) 주소 상수(address constant)같이 주소에 종속되는 부분을 할당된 기억 장소에 일치하도록 조정(relocation) 실제적으로 기계어 명령들과 자료를 기억 장치에 적재(loading)
20
컴파일러와 인터프리터 컴파일러 : 실행 파일 생성 * 일괄 번역형 * COBOL, FORTRAN, PASCAL, C++
* 명령어 하나씩 해석하여 실행 * BASIC, PROLOG 1) 컴파일러 원시프로그램을 일괄적으로 번역하여 목적프로그램을 생성하는 것으로 프로그래머 입장에서 볼 때 융통성은 적으나 컴퓨터 입장에서 볼 때 실행효율이 높다. 이러한 방식을 이용한 언어로는COBOL,PASCAL,C, C++, FORTRAN 등이 있다. 2) 인터프리터 원시프로그램을 줄단위로 입력을 받아 해석한 후 바로 실행하며 목적프로그램을 생성하지 않는 것으로 프로그래머 입장에서 볼 때 수정이나 편집 등의 융통성은 높으나 실행효율이 떨어지는 단점을 갖고 있다. 이러한 방식을 이용하는 언어로는 LISP, BASIC, PROLOG, JAVA 등이 있다.
21
운영체제의 개요 프로그램의 실행을 제어하는 소프트웨어로 자원의 할당, 스케쥴링, 입출력제어, 데이터관리 등의 서비스를 제공하는 것 주요기능 File Management – 입출력 및 데이터 관리 Job Management - 자원할당(memory,CPU,..), Job 스케쥴링 Task(Process) Management - Job을 처리 기본 단위인 Task로 실행 멀티 태스킹 - 분산, 병렬, 다중처리로 발전 3) 운영체제 시스템프로그램에서 가장 중요한 것으로 사용자가 컴퓨터시스템을 효율적이고 쉽게 사용할 수 있도록 사용자와 시스템간의 인터페이스 역할을 수행한다. 이러한 운영체제의 기능은 자원의 관리로 프로세서, 주기억장치, 입출력장치, 통신장치, 그리고 화일 등의 자원을 관리한다. 또한 오늘날 운영체제는 하드웨어 가격하락과 프로세서 속도 향상에 의해 분산처리, 병행처리, 다중처리로 발전되고 있다.
22
운영체제의 자원관리 기억장치 CPU 운영체제 화 일 입출력장치 프로세스 통신장치
23
운영체제의 종류 DOS OS2 Windows 98, Windows 2000, Windows XP Unix
Rinux (Copyright vs. Copyleft) 3) 운영체제 시스템프로그램에서 가장 중요한 것으로 사용자가 컴퓨터시스템을 효율적이고 쉽게 사용할 수 있도록 사용자와 시스템간의 인터페이스 역할을 수행한다. 이러한 운영체제의 기능은 자원의 관리로 프로세서, 주기억장치, 입출력장치, 통신장치, 그리고 화일 등의 자원을 관리한다. 또한 오늘날 운영체제는 하드웨어 가격하락과 프로세서 속도 향상에 의해 분산처리, 병행처리, 다중처리로 발전되고 있다.
24
임베디드 시스템의 개요 마이크로프로세서 혹은 마이크로컨트롤러를 내장하여(embedded) 원래 제작자가 지정한 기능만을 수행하는 시스템 PC는 임베디드 시스템이라 하지 않는다. 설계, 개발 시 고려사항 Real-Time, Reactive – 실시간 동작 Small Size, Low Weight - 소형화 Safe, Reliable - 안정성 Harsh Environment – 극한 환경에서 동작 Cost Sensitivity - 경제성 3) 운영체제 시스템프로그램에서 가장 중요한 것으로 사용자가 컴퓨터시스템을 효율적이고 쉽게 사용할 수 있도록 사용자와 시스템간의 인터페이스 역할을 수행한다. 이러한 운영체제의 기능은 자원의 관리로 프로세서, 주기억장치, 입출력장치, 통신장치, 그리고 화일 등의 자원을 관리한다. 또한 오늘날 운영체제는 하드웨어 가격하락과 프로세서 속도 향상에 의해 분산처리, 병행처리, 다중처리로 발전되고 있다.
25
임베디드 시스템의 활용 정보 가전 제품 핸드폰 및 PDA 다말기 공장 자동화 및 자동제어 첨단 특수 분야 3) 운영체제
시스템프로그램에서 가장 중요한 것으로 사용자가 컴퓨터시스템을 효율적이고 쉽게 사용할 수 있도록 사용자와 시스템간의 인터페이스 역할을 수행한다. 이러한 운영체제의 기능은 자원의 관리로 프로세서, 주기억장치, 입출력장치, 통신장치, 그리고 화일 등의 자원을 관리한다. 또한 오늘날 운영체제는 하드웨어 가격하락과 프로세서 속도 향상에 의해 분산처리, 병행처리, 다중처리로 발전되고 있다.
26
제1장 요약 하드웨어와 소프트웨어의 개념 프로그래밍 언어 시스템 프로그래밍에 대한 이해 번역 관련 소프트웨어의 개념
* 어셈블러, 컴파일러, 매크로프로세서 링커와 로더 운영체제의 발전과 기능 이해 임베디드 시스템의 개요 및 활용 ㅇ 컴퓨터시스템은 하드웨어와 소프트웨어로 구성되며 소프트웨어는 시스템소프트웨어와 응용소프트웨어로 나누어진다. ㅇ 시스템프로그램은 사용자가 이용하는 응용프로그램과 컴퓨터 하드웨어 사이에서 사용자들이 컴퓨터시스템을 효과적으로 이용할 수 있도록 해준다. ㅇ 시스템프로그램에는 운영체제, 번역관련 프로그램, 링커, 로더, 매크로프로세서, 각종 유틸리티 등이 있다. ㅇ 운영체제는 시스템프로그램 중 가장 중요하며 주로 컴퓨터시스템 자원을 관리하게 되는데 MS-DOS, Windows, OS/2, UNIX, VM, MVS 등은 운영체제이다.
Similar presentations