system programming

21
System Programming 김김김 1

Upload: sarah

Post on 12-Jan-2016

132 views

Category:

Documents


1 download

DESCRIPTION

System Programming. 김대영. 강의 소개. 담당교수 : 김대영 연락처 이메일 : [email protected] 전화번호 : 010-5695-5675 특별한 경우를 제외하고는 이메일로 .. ( 꼭 학교 , 과목 , 이름을 이야기해주세요 ~!). 강의 소개. 교재 뇌를 자극하는 윈도우 시스템 프로그래밍 저자 : 윤성우 , 출판사 : 한빛미디어 성적 산출 중간 : 35%, 기말 : 35% 출석 : 10% (4 번 결석시 F 처리 ) - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: System Programming

System Programming

김대영

1

Page 2: System Programming

강의 소개

담당교수 : 김대영

연락처 이메일 : [email protected] 전화번호 : 010-5695-5675 특별한 경우를 제외하고는 이메일로 ..

( 꼭 학교 , 과목 , 이름을 이야기해주세요 ~!)

2

Page 3: System Programming

강의 소개

교재 뇌를 자극하는 윈도우 시스템 프로그래밍 저자 : 윤성우 , 출판사 : 한빛미디어

성적 산출 중간 : 35%, 기말 : 35% 출석 : 10% (4 번 결석시 F 처리 ) 기타 : 10%, 보고서 : 10%

지속적인 리포트 및 테스트 , 평소 행동 등 ..

3

Page 4: System Programming

시스템 프로그래밍

선수 과목 컴퓨터 구조 운영체제

교재 선정 이유 시스템 프로그래밍 + 컴퓨터 구조 +

운영체제를 혼합하여 이해하기 쉽게 되어 있음 . 작은 그림이 아니라 큰 그림을 이해하자 ~! Power Programmer 가 되는 발판 마련

무료 동영상 강의도 지원함 .4

Page 5: System Programming

5

컴퓨터 구조에 대한 첫 번째 이야기

Chapter 1

Page 6: System Programming

6

Section 1~3

Page 7: System Programming

시스템 프로그래밍이란 ?

시스템 프로그램이란 ? 기본 개념 : 컴퓨터 시스템을 동작시키는 프로그램

동작 : 파일 복사 , 파일 이등 등의 기본 동작들 포함 .

우리가 알고 있는 시스템 프로그램은 ? Windows, UNIX, Linux 와 같은 운영체제들 .

시스템 프로그래머 어셈블리나 C 언어를 활용 하드웨어를 직접 컨트롤

하는 개발자 ( 운영체제 개발자들도 포함 ) 운영체제가 제공하는 라이브러리를 사용하여

프로그램을 개발하는 개발자 7

Term. 라이브러리 - 운영체제의 기능을 활용할 수 있는 시스템 함수들의 집합

Page 8: System Programming

시스템 프로그래밍이란 ?

윈도우 시스템 프로그래머 윈도우에서 제공하는 라이브러리를 활용하여

프로그램을 개발하는 사람 유닉스 시스템 프로그래머

유닉스에서 제공하는 라이브러리를 활용하여 프로그램을 개발하는 사람

윈도우 시스템 프로그래머가 되기 위해서는 무엇을 공부해야만 하는가 ? MSDN 을 뒤져서 각각의 함수가 제공하는 기능을

아주 정확히 이해하면 됨 . 8

=> 운영체제에 대한 최소 지식 필요 => 컴퓨터 구조 지식 필요

Page 9: System Programming

9

컴퓨터 시스템의 주요 구성요소 CPU, 캐쉬

컴퓨터 하드웨어 구조

운영체제 메인 메모리

메모리 관리 기법

하드디스크 파일 I/O( 다양한 I/O

포함 )

두 과목을 이해하면 언어의 문법적 요소만을 이해하고 바로프로그래밍하는 프로그래머들보다 효율적인 ( 속도를 높이고 ,메모리를 효율적으로 사용하는 ) 프로그램을 구현하는 것이 가능해짐

Page 10: System Programming

10

컴퓨터 하드웨어 구성 ( 전체 )

Page 11: System Programming

11

컴퓨터 하드웨어 구성 ( 전체 )

CPU( Central Processing Unit) 중앙처리장치 연산이 이뤄지는 원리는 무엇인가 ?

메인 메모리 (Main Memory) 램 (RAM) 프로그램 실행 방식을 이해하는 것 .

입출력 버스 (Input/Output Bus) 데이터 송 수신이 이뤄지는 원리 .

Page 12: System Programming

12

CPU 에 대한 이해 ( 전체 구성 )

ALU

컨트롤 유닛

레지스터

버스 인터페이스

Page 13: System Programming

13

CPU 에 대한 이해

나 ? 덧셈

숫자 2

숫자 5

Brain!

Page 14: System Programming

14

클럭 신호 (Clock Pulse)

동작 타이밍 클럭 발생기의 클럭

필요성 요소들의 동기화

Page 15: System Programming

15

Section 4~5

Page 16: System Programming

16

프로그램 실행과정 전처리기에 의한 치환작업

# 으로 시작하는 지시자

컴파일러에 의한 번역 CPU 의 명령어로 번역

어셈블러에 의한 바이너리 코드 생성 CPU 의 명령어를 바이너리 코드로 번역

링커에 의한 연결과 결합 라이브러리와의 결합

Page 17: System Programming

17

Stored Program Concept

Fetch CPU 내부로 명령어 이동

Decode 명령어 해석 컨트롤 유닛

Execution 연산을 진행 보통은 ALU 를 생각

Page 18: System Programming

18

Stored Program Concept

Page 19: System Programming

19

Stored Program Concept + 컴퓨터 구조

Page 20: System Programming

20

데이터 이동의 기반 버스 시스템

데이터 버스 데이터 이동

어드레스 버스 주소 이동

컨트롤 버스 컨트롤 신호 이동

Page 21: System Programming

21

QnA