일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Graphics
- shader programming
- 오픈지엘
- win32
- denoising
- bezier curve
- 윈도우프로그래밍
- 베지에 곡선
- 핵심 API로 배우는 윈도우프로그래밍
- MFC 윈도우 프로그래밍
- modeling
- 렌더링
- Geometry Modeling
- window programming
- 윈도우
- shader
- Win32 API
- OpenGL
- 운영체제
- 셰이더프로그래밍
- 그래픽스기초
- MFC
- c4d
- 윈도우 프로그래밍
- 윈도우 구조
- 그래픽스
- 컴퓨터 아키텍쳐
- Mesh Processing
- 컴퓨터 구조
- 셰이더
- Today
- Total
목록컴퓨터 구조 (9)
오다기리 박의 알고리즘 노트
7장. 프로세스간 통신(IPC) 11. 프로세스간 통신(IPC)란?IPC(Inter-Process Communication) : 둘 이상의 프로세스가 데이터를 주고 받는 행위 프로세스 사이에서 통신이 이뤄지기 위한 조건서로 통신하고자 하는 프로세스가 서로 만날 수 있는 여건(공유하는 메모리 영역이 존재)이 허락되면 프로세스간 통신은 쉽다. -> 사실 불가프로세스들이 서로 만날 수 없는 이유프로세스들은 자신에게 할당된 메모리 공간 이외에는 접근불가데이터를 주고 받기 위해 메모리 공간을 마련해 놓고, 이곳을 이용해서 통신을 하면 간단하지만 불가능한 일이므로 다른 통신수단을 이용해야 한다.프로세스들이 서로 만나지 못하게 디자인한 이유프로그램 안전성을 높이기 위해 2. 메일슬롯 방식의 IPC메일슬롯(Mail S..
6장. 커널 오브젝트와 오브젝트 핸들1. 커널 오브젝트 커널이란 컴퓨터를 운영하는 데 있어서 중심이 되는 운영체제 핵심 부분 커널 오브젝트란 커널에서 관리하는 중요한 정보를 담아둔 데이터 블록 커널 오브젝트의 이해프로세스를 생성, 관리하는 주체는 운영체제프로세스가 생성될 때마다 ‘프로세스 관리 구조체’ 변수가 하나씩 생성되고 새롭게 생성된 프로세스 정보들로 초기화된다. -> 커널 오브젝트!!프로그래머가 직접조작 불가그 이외의 커널 오브젝트들프로세스 내에서 프로그램 흐름을 구성하는 쓰레드를 생성할 때, IPC(Inter Process Communication)를 위해 사용되는 파이프나 메일슬롯을 생성할 때에도 커널 오브젝트 생성.Windows에서는 파일을 생성할 때에도 커널 오브젝트 생성. (파일조차도 W..
5장. 프로세스의 생성과 소멸1. 프로세스의 이해 프로세스란?실행 중에 있는 프로그램실행파일을 클릭하면 메모리 할당이 이뤄지고 메모리 공간으로 바이너리 코드가 올라가게 된다. 이 순간부터 프로그램은 프로세스이다.우리가 사용하는 Windows를 멀티 프로세스 운영체제라 한다.프로세스의 구성요소C프로그램 실행레지스터 셋CPU내에 존재하는 레지스터들은 현재 실행 중인 프로그램을 위한 데이터들로 채워진다.레지스터들의 상태까지도 프로세스의 일부. 2. 프로세스의 스케줄링과 상태 변화 프로세스의 스케줄링(Scheduling)하나의 CPU가 여러 개의 프로세스를 번갈아 가면서 실행해야 함.기본 원리스케줄링 : 프로세스의 CPU 할당 순서 및 방법을 결정짓는 일스케줄러 : 스케줄링 알고리즘을 적용해서 실제로 프로세스를..
4장. 컴퓨터 구조에 대한 두 번째 이야기1. 컴퓨터 구조의 접근방법 1. 레지스터 디자인 (16비트로) - Direct Addressing 모드레지스터를 디자인하는데 잇어서 결정해야 할 요소레지스터를 몇 비트로 구성할 것인가?몇 개 정도로 레지스터를 구성할 것인가?레지스터 각각을 무슨 용도로 사용할 것인가?2. CPU에게 일을 시키기 위한 명령어 구조 및 명령어 종류 디자인CPU구성형태 (레지스터 구성형태)에 따라서 명령어 구조가 달라진다. -> 어셈블리 언어로 구현된 프로그램은 구조가 다른 CPU로 이식이 불가능하다.우리가 구성하는 명령어의 형태에 따라서 컨트롤 유닛의 논리회로가 디자인된다.연산결과는 일단 레지스터에 저장되어야 한다. (첫 번째 피연산자 위치에는 레지스터 이름이 와야 한다)모든 피연산..
3장. 64비트 기반 프로그래밍1. WIN32 vs WIN64 64비트와 32비트분류 기준 : I/O버스에서 한 번에 송수신할 수 있는 데이이터의 크기, 한 번에 처리할 수 있는 데이터 크기 프로그래머 입장에서의 64비트 컴퓨터 4비트로 주소를 표현할 경우 메모리에 할당할 수 있는 주소값의 개수는 16바이트가 전부이기 때문에 사용할 수 있는 최대 메모리의 크기는 16바이트이다. [32비트] 32비트 주소 표현을 할 경우 주소값의 이동 및 연산이 한 번에 이뤄지고 표현할 수 있는 주소의 범위가 4G바이트(2^32)가 되기 때문에 충분하다.[64비트] I/O 버스가 64비트 단위로 자료를 전송하는 컴퓨터 세대를 가리키기도 하며 이를 64비트 컴퓨터라고도 부른다. 2. 프로그램 구현 관점에서의 WIN32 vs..
2장. 아스키코드 vs 유니코드1. Windows에서의 유니코드 아스키 코드 : 초창기에는 다양한 방법으로 문자를 표현했는데, 호환 등 여러 문제가 발생했다. 이런 문제를 해결하기 위해 ANSI에서 ASCII(American Standard Code for Information Interchange)라는 표준 코드 체계를 제시했고, 현재 이 코드가 일반적으로 사용되고 있다. 유니코드 : 각 나라별 언어를 모두 표현하기 위해 나온 코드 체계이다. 유니코드는 사용중인 운영체제, 프로그램, 언어에 관계없이 문자마다 고유한 코드 값을 제공하는 새로운 개념의 코드다. 언어와 상관없이 모든 문자를 16비트로 표현하므로 최대 65,536자를 표현할 수 있다. 아스키코드유니코드멀티바이트미국 표준전세계 표준 256개 문..
1장. 컴퓨터 구조에 대한 첫 번째 이야기1. 시스템 프로그래밍의 이해와 접근시스템 프로그래밍이란?시스템 프로그램 : 컴퓨터 시스템을 동작(파일 복사, 파일 이동)시키는 프로그램. (ex.Windows, UNIX)운영 체제 메인 메모리로 올라가서 실행됨프로그램 실행을 위해 존재하는 메모리입출력 버스컴퓨터를 구성하는 구성요소 ..
2. 컴퓨터 구조21. 컴퓨터 구조의 접근방법 1. 레지스터 디자인 (16비트로) - Direct Addressing 모드레지스터를 디자인하는데 잇어서 결정해야 할 요소레지스터를 몇 비트로 구성할 것인가?몇 개 정도로 레지스터를 구성할 것인가?레지스터 각각을 무슨 용도로 사용할 것인가?2. CPU에게 일을 시키기 위한 명령어 구조 및 명령어 종류 디자인CPU구성형태 (레지스터 구성형태)에 따라서 명령어 구조가 달라진다. -> 어셈블리 언어로 구현된 프로그램은 구조가 다른 CPU로 이식이 불가능하다.우리가 구성하는 명령어의 형태에 따라서 컨트롤 유닛의 논리회로가 디자인된다.연산결과는 일단 레지스터에 저장되어야 한다. (첫 번째 피연산자 위치에는 레지스터 이름이 와야 한다)모든 피연산자에는 메인 메모리의 주..