본문 바로가기

전체 글

윈도우 시스템 프로그래밍_8 [뇌를 자극하는 윈도우즈 시스템 프로그래밍] 2007 윤성우 저 " 시스템 프로그래이란 하드웨어를 사용할 수 있도록 도와주는 프로그램" = Window 운영체제 기반의 컴퓨터에게 일을 시키기 위한 프로그램 구현하는 것 21장 라이브러리와 printf printf의 함수의 정의는 어디에 들어있는가 - 선언은 include stdio.h - 정의는 Libcmt.lib/ Libcmtd.lib/ Msvcrt.lib/Msvcrtd.lib *라이브러리 이름의 마지막이 'd'로 끝나는 경우는 디버그 모드로 컴파일할 때 사용되는 라이브러리이다. 정적 라이브러리 *사용 방법 1. Additional Dependencies 포함시킬 라이브러리 이름 지정 2. #pragma comment(lib, "포함할 라이브러리 이름".. 더보기
윈도우 시스템 프로그래밍_7 [뇌를 자극하는 윈도우즈 시스템 프로그래밍] 2007 윤성우 저 " 시스템 프로그래이란 하드웨어를 사용할 수 있도록 도와주는 프로그램" = Window 운영체제 기반의 컴퓨터에게 일을 시키기 위한 프로그램 구현하는 것 18장 파일 I/O 와 디렉터리 컨트롤 CreateFile() WriteFile() ReadFile() 파일 시간 GetFileTime 함수는 UTC 기반으로 시간 정보를 돌려준다. UTC 란 Coordinated Universal TIme, 세계 시간 기준을 만들기 위해 정의된 시간이다. : 1601년 1월 1일을 기준으로 100 나노초 단위 기준으로 지나간 시간을 계산한다. : 정밀도를 높이기 위해 "Atomic Clock" 이라는 시계가 사용된다. FileTimeToSystemTime.. 더보기
윈도우 시스템 프로그래밍_6 [뇌를 자극하는 윈도우즈 시스템 프로그래밍] 2007 윤성우 저 " 시스템 프로그래이란 하드웨어를 사용할 수 있도록 도와주는 프로그램" = Window 운영체제 기반의 컴퓨터에게 일을 시키기 위한 프로그램 구현하는 것 15장 쓰레드 풀링 쓰레드 생성/해제를 하는 대신 재활용하는 것 쓰레드 생성/해제를 하는 것은 비용이 많이 든다. ex) 은행원 5명이 일을 하고 있고 5줄씩 줄을 서 있다가 한 명이 사라지면 손님들을 4명이 받을 수 있도록 재배치해야 한다. -> 손님들은 한 줄로 서있고 5명이 돌아가면서 일을 처리 *파이프와 리다이렉션 | 기호는 해당 명령어를 다른 프로세스에서 실행시킨다. ex) text.txt | sort > sort.txt => text.txt 의 내용물을 정렬하여 sort.txt에.. 더보기
윈도우 시스템 프로그래밍_5 [뇌를 자극하는 윈도우즈 시스템 프로그래밍] 2007 윤성우 저 " 시스템 프로그래이란 하드웨어를 사용할 수 있도록 도와주는 프로그램" = Window 운영체제 기반의 컴퓨터에게 일을 시키기 위한 프로그램 구현하는 것 11. 쓰레드란 무엇인가 프로세스 : 완전히 독립된 두 개의 프로그램 실행 단위 (프로세스 사이에는 컨텍스트 스위칭이 발생) 쓰레드 : 하나의 프로그램 내에서 둘 이상의 프로그램 흐름 단위 (쓰레드 끼리 공유하는 자원이 있기 때문에 컨텍스트 스위칭에 걸리는 시간이 프로세스보다 짧다) 쓰레드 in 메모리 : 스택은 별도로 사용하되 힙, 데이터 영역은 공용으로 사용한다. 쓰레드의 생성 커널 영역이란 : 운영체제 운영을 위해 필요한 영역, 유저 영역과 같이 스택, 힙, 코드 영역으로 나뉘어 있으.. 더보기
윈도우 시스템 프로그래밍_4 [뇌를 자극하는 윈도우즈 시스템 프로그래밍] 2007 윤성우 저 " 시스템 프로그래이란 하드웨어를 사용할 수 있도록 도와주는 프로그램" = Window 운영체제 기반의 컴퓨터에게 일을 시키기 위한 프로그램 구현하는 것 9 스케줄링 알고리즘과 우선순위 멀티프로세서에서 여러 가지 프로세스를 운영하려면 스케줄러(실행 중인 모든 프로세스들에게 골고루 CPU 할당)가 필요하다. (soft) RTOS vs OS RTOS는 응답성이 OS보다 좋다. 일반 OS는 범용적인 사용을 위해 디자인되어 있다. (soft) RTOS는 사용하는 영역이 제한적이다. 프로그래머가 시키지 않은 일은 하지 않는다. 따라서 사용 목적이 구체적이고 제한적이다 보니 단순하게 디자인되어 있고 일반 OS에 비해 가볍다. 비선점형 OS 실행중인 프.. 더보기
윈도우 시스템 프로그래밍_3 [뇌를 자극하는 윈도우즈 시스템 프로그래밍] 2007 윤성우 저 " 시스템 프로그래이란 하드웨어를 사용할 수 있도록 도와주는 프로그램" = Window 운영체제 기반의 컴퓨터에게 일을 시키기 위한 프로그램 구현하는 것 6장 커널 오브젝트와 오브젝트 핸들 사실상 프로세스는 운영 체제가 생성/관리 한다. 프로그래머->(CreateProcess)->운영 체제->프로세스 생성(관리) 프로세스를 관리하기 위해서 프로세스 상태 정보를 저장하기 위해 정의한 것이 프로세스 관리 구조체 = 커널 오브젝트이다. "윈도우 운영체제는 프로세스, 쓰레드 파일과 같은 리소스들을 원활히 관리하기 위해 필요한 정보를 저장해야 한다. 이때 데이터를 저장하는 메모리 블록을 가리켜 커널 오브젝트라고 한다." 1. 프로그래머는 커널 오브젝.. 더보기
윈도우 시스템 프로그래밍_2 [뇌를 자극하는 윈도우즈 시스템 프로그래밍] 2007 윤성우 저 " 시스템 프로그래이란 하드웨어를 사용할 수 있도록 도와주는 프로그램" = Window 운영체제 기반의 컴퓨터에게 일을 시키기 위한 프로그램 구현하는 것 3장 WIN32 와 WIN64 한 번에 전송 및 수신할 수 있는 데이터 크기에 따라 32비트 시스템과 64비트 시스템이 나뉘게 된다. WIN 64 의 경우 : 표현할 수 있는 주소 범위가 64비트 (주소 값의 이동 및 연산이 한 번에 처리 가능) WIN32의 경우 : 표현할 수 있는 주소 범위가 32비트 (더 많은 주소 값의 이동 및 연산이 한 번에 처리 가능) 64비트와 32비트의 공존의 문제점 int arr[10]; int address = arr; 주소 값으로 4G 이상의 주소 값이 .. 더보기
윈도우즈 시스템 프로그래밍 [뇌를 자극하는 윈도우즈 시스템 프로그래밍] 2007 윤성우 저 " 시스템 프로그래이란 하드웨어를 사용할 수 있도록 도와주는 프로그램" = Window 운영체제 기반의 컴퓨터에게 일을 시키기 위한 프로그램 구현하는 것 1장 컴퓨터 구조에 대한 이야기 컴퓨터를 구성하는 것 1. CPU 중앙 처리장치 * 메인 메인 메모리 : 컴파일이 완료된 프로그램 코드가 올라가서 실행되는 영역 2. 입 출력 버스 컴퓨터를 구성하는 구성요소 사이에서 데이터를 주고받기 위해 사용되는 경로 Address Bus Data Bus Control Bus 하드디스크, 메인 메모리 CPU 등이 모두 버스에 연결되어 있다. 3. ALU (Arithmetuc Logic Unit) CPU 내부에 실제 연산을 담당하는 블록 -산술 연산 -논리.. 더보기