340 likes | 936 Views
System Programming. 김대영. 강의 소개. 담당교수 : 김대영 연락처 이메일 : com@kw.ac.kr 전화번호 : 010-5695-5675 특별한 경우를 제외하고는 이메일로 .. ( 꼭 학교 , 과목 , 이름을 이야기해주세요 ~!). 강의 소개. 교재 뇌를 자극하는 윈도우 시스템 프로그래밍 저자 : 윤성우 , 출판사 : 한빛미디어 성적 산출 중간 : 35%, 기말 : 35% 출석 : 10% (4 번 결석시 F 처리 )
E N D
강의소개 • 담당교수 : 김대영 • 연락처 • 이메일 : com@kw.ac.kr • 전화번호 : 010-5695-5675 • 특별한 경우를 제외하고는 이메일로.. • (꼭 학교, 과목, 이름을 이야기해주세요~!)
강의 소개 • 교재 • 뇌를 자극하는 윈도우 시스템 프로그래밍 • 저자 : 윤성우, 출판사 : 한빛미디어 • 성적 산출 • 중간 : 35%, 기말 : 35% • 출석 : 10% (4번 결석시 F 처리) • 기타 : 10%, 보고서 : 10% • 지속적인 리포트 및 테스트, 평소 행동 등..
시스템 프로그래밍 • 선수 과목 • 컴퓨터 구조 • 운영체제 • 교재 선정 이유 • 시스템 프로그래밍 + 컴퓨터 구조 + 운영체제를 혼합하여 이해하기 쉽게 되어 있음. • 작은 그림이 아니라 큰 그림을 이해하자~! • Power Programmer가 되는 발판 마련 • 무료 동영상 강의도 지원함.
컴퓨터 구조에 대한 첫 번째 이야기 Chapter 1
Term. 라이브러리 -운영체제의 기능을 활용할 수 있는 시스템 함수들의 집합 시스템프로그래밍이란? • 시스템 프로그램이란? • 기본 개념 : 컴퓨터 시스템을 동작시키는 프로그램 • 동작 : 파일 복사, 파일 이등 등의 기본 동작들 포함. • 우리가 알고 있는 시스템 프로그램은? • Windows, UNIX, Linux 와 같은 운영체제들. • 시스템 프로그래머 • 어셈블리나 C언어를 활용 하드웨어를 직접 컨트롤 하는 개발자 (운영체제 개발자들도 포함) • 운영체제가 제공하는 라이브러리를 사용하여 프로그램을 개발하는 개발자
시스템 프로그래밍이란? • 윈도우 시스템 프로그래머 • 윈도우에서 제공하는 라이브러리를 활용하여 프로그램을 개발하는 사람 • 유닉스 시스템 프로그래머 • 유닉스에서 제공하는 라이브러리를 활용하여 프로그램을 개발하는 사람 • 윈도우 시스템 프로그래머가 되기 위해서는 무엇을 공부해야만 하는가? • MSDN을 뒤져서 각각의 함수가 제공하는 기능을 아주 정확히 이해하면 됨. => 운영체제에 대한 최소 지식 필요 => 컴퓨터 구조 지식 필요
컴퓨터 시스템의 주요 구성요소 • CPU, 캐쉬 • 컴퓨터 하드웨어 구조 • 운영체제 • 메인 메모리 • 메모리 관리 기법 • 하드디스크 • 파일 I/O(다양한 I/O포함) Power Programmer • 두 과목을 이해하면 언어의 문법적 요소만을 이해하고 바로 • 프로그래밍하는 프로그래머들보다 효율적인(속도를 높이고, • 메모리를 효율적으로 사용하는) 프로그램을 구현하는 것이 가능해짐
컴퓨터 하드웨어 구성(전체) • CPU( Central Processing Unit) • 중앙처리장치 • 연산이 이뤄지는 원리는 무엇인가? • 메인 메모리(Main Memory) • 램(RAM) • 프로그램 실행 방식을 이해하는 것. • 입출력 버스(Input/Output Bus) • 데이터 송 수신이 이뤄지는 원리.
CPU에 대한 이해(전체 구성) • ALU • 컨트롤 유닛 • 레지스터 • 버스 인터페이스
CPU에 대한 이해 Brain! 나? 덧셈 숫자 2 숫자 5
클럭 신호(Clock Pulse) • 동작 타이밍 • 클럭 발생기의 클럭 • 필요성 • 요소들의 동기화
프로그램 실행과정 • 전처리기에 의한 치환작업 • #으로 시작하는 지시자 • 컴파일러에 의한 번역 • CPU의 명령어로 번역 • 어셈블러에 의한 바이너리 코드 생성 • CPU의 명령어를 바이너리 코드로 번역 • 링커에 의한 연결과 결합 • 라이브러리와의 결합
Stored Program Concept • Fetch • CPU 내부로 명령어 이동 • Decode • 명령어 해석 • 컨트롤 유닛 • Execution • 연산을 진행 • 보통은 ALU를 생각
데이터 이동의 기반 버스 시스템 • 데이터 버스 • 데이터 이동 • 어드레스 버스 • 주소 이동 • 컨트롤 버스 • 컨트롤 신호 이동