본문 바로가기

운영체제

커널 오브젝트(Kernel Object) 커널 오브젝트 : Windows 운영체제에서 리소스(Resource : 프로세스, 쓰레드, 파일)들을 관리하기 위한 데이터를 저장하는 메모리 블록 Windows에서 관리하는 리소스 특성을 변경하기 위해서는 해당 리소스의 커널 오브젝트를 조작해야한다. 해당 리소스의 정보를 저장하고 있는 커널 오브젝트에 접근하기 위해서는 커널 오브젝트들을 구별하는 커널 오브젝트 핸들(Object Handle)을 얻어야 한다. 커널 오브젝트와 핸들 : 커널 오브젝트는 Windows 운영체제에 종속적이다. 사용자가 리소스 생성을 요청하면 운영체제에서 사용자가 요청한 대로 리소스를 생성하게 되고 이를 관리하기 위해 커널 오브젝트를 생성한다. 즉, 커널 오브젝트는 Windows 운영체제에 의해 생성 및 소멸이 결정된다. 리소스가 .. 더보기
시스템 프로그래밍(System Programming)의 시작 시스템 프로그램(System Program) : 컴퓨터 시스템을 동작시키거나 하드웨어를 사용할 수 있도록 도와주는 프로그램 1. 컴퓨터 시스템의 주요 구성요소(Main Components) 컴퓨터 구조(Computer Architecture) : CPU 캐쉬(Cache) ↕ 운영체제(Operating System) : 메인 메모리(Main Memory) 하드디스크(Hard Disk) 2. 컴퓨터 구조 : 1) CPU : 중앙처리장치(Central Processing Unit) ALU(Arithmetic Logic Unit) : CPU 내부에 실제 연산을 담당하는 부분. 산술연산(+, -)과 논리연산(AND, OR)을 수행 컨트롤 유닛(Control Unit) : CPU 내부로 들어온 명령어를 해석해서 A.. 더보기
윈도우 파일시스템(File System) 파일시스템(File System) : 운영체제(OS)가 하드디스크에 데이터를 읽고, 쓰고 찾는, 파일을 관리하기 위한 규칙 FAT32 : File Allocation Table 32 (파일 할당 테이블) Sector(섹터)를 몇개의 최소 단위로 묶어서 각각의 묶음(클러스터 : Cluster)을 기본단위로 파일을 저장한다. 예를 들어 1MB의 디스크가 있다고 하면 1 Sector = 4096 byte (4kb) 1MB = 1024KB = 4KB*256 즉 섹터수는 256개이다. FAT32 시스템은 이 256섹터를(2섹터 = 1클러스터로 가정) 클러스터로 묶어서 128 클러스터로 나타낸다. 이 클러스터들에 번호를 붙여서 파일을 저장하고 검색하는 기준으로 삼는다. (색인이라고 보시면 됩니다) 클러스터 수의 효.. 더보기
멀티부팅(Multi Booting) 이런 생각을 많이 해보셨을 것이다. 하나의 하드에 여러개의 운영체제(OS)를 설치해서 그중에 하나를 골라서 부팅하고 싶다. 가장 간단한 방법은 Vmware를 설치해서 그안에 여러개의 운영체제를 설치하여 실행하는 방법일 것이다. 하지만 그방법말고 하드에 여러개의 운영체제를 설치해서 멀티부팅(Multi booting)해보자. 기본개념은 http://dakuo.tistory.com/entry/파티션Partition의-개념 이다. (최대 4개의 주파티션을 설정할수 있다. 따라서 운영체제도 4개까지 설치가능하다) 기본적으로 MBR에는 하나의 부트레코더만 기록할수 있으므로 여러개의 운영체제를 설치하여 멀티부팅한다는 것은 불가능하다. 하지만 하나의 더미 부트레코더를 MBR에 설치해서 그것을 부팅시킨 후에 거기서 여러.. 더보기
파티션(Partition)의 개념 파티션(Partition)이란 쉽게 말하면 방입니다. 하나의 집에(물리적인 하드디스크) 여러개의 방(partition 파티션)을 만드는 것이죠. 방에는 2 종류가 있습니다. 1. 살림을 차릴수 있는 원룸(Primary 주파티션) 2. 잠만 잘수 있는 방(Logical 논리드라이브) 하드디스크(Hard Disk)의 구조를 대략적으로 표현한 그림입니다. 1. MBR : Master Boot Recoder 하드에서 가장 먼저 읽히는 부분이다. 하드디스크의 전체적인 관리를 한다고 볼수 있다. 4개의 파티션을 관리할수 있다. (참고 : 최대 나눌수 있는 파티션은 주파티션 3 + 확장파티션(논리 4개) = 7개입니다) 또 주파티션마다 각각의 부트섹터(BootSector)가 할당되는데 이럴 경우 컴퓨터가 어느곳의 부.. 더보기
타이머(Timer) 타이머 : 한 번 지정해 놓기만 하면 일정한 시간 간격을 두고 연속적으로 게속 발생한다. 주기적으로 같은 동작을 반복해야 한다거나 여러 번 나누어 해야 할 일이 있을 때 이 메시지를 이용한다. 타이머 메시지를 사용한 예제이다. (윈도우 프로그램 기본틀에 수정을 하면 된다 http://dakuo.tistory.com/entry/1) LRESULT CALLBACK WndProc(HWND hWnd, UINT iMessage, WPARAM wParam, LPARAM lParam) { HDC hdc; PAINTSTRUCT ps; static HANDLE hTimer; SYSTEMTIME st; static char sTime[128]; switch(iMessage) { case WM_CREATE: hTimer =.. 더보기
윈도우즈(Windows) 프로그래밍의 기초 윈도우즈(Windows)의 장점 : 1. 그래픽 기반의 운영체제이다. 2. 멀티 태스킹이 가능하다. 3. 장치에 영향을 받지 않는다. 4. 일관성 개발툴의 선택 : 1. API : API(Application Programming Interface) : 운영체제가 응용 프로그램을 위해 제공하는 함수의 집합 2. SDK : SDK(Software Development Kit) : 윈도우즈를 만든 Microsoft에서 제공하는 윈도우즈용 프로그램 개발 킷이다. API 함수들을 사용하여 프로그램을 작성하며 가장 원론적이고 먼저 발표된 개발방법이다. 섬세하고 막강하며 속도가 빠르고 크기에 유리하나 방대한 API 함수를 알아야 하며 코드가 길어지고 생산성도 낮다. 3. 클래스 라이브러리 API 함수들을 좀 더 쉽.. 더보기