시스템 프로그래밍 공부 요약
01 윈도우즈에서의 유니코드 아스키코드 : 미국에서 정의하고 있는 표준이다 1바이트로 표현됨(알파벳 + 확장문자) 유니코드 : 2바이트로 표현되는 여러 문자들을 표현하기위한 문자셋 문자셋 : 약속된 문자의 표현방법 SBCS(문자표현에 1바이트),MBCS(1바이트로
64비트와 32비트 " 한 번에 송수신할 수 있는 데이터 크기와 한 번에 처리할 수 있는 데이터 크기를 기준으로 32비트 컴퓨터와 64비트 컴퓨터를 구분 짓는다. " >프로그래머 입장에서의 64비트 컴퓨터 32비트환경에서는 주소값이 32비트로 표현되는것이 64비트
컴퓨터 구조의 접근 방법 컴퓨터를 디자인 하자 CPU 전부를 논리-게이트 단위로 디자인하는 것이 아닌 레지스터만을 디자인 대상으로 삼아 디자인 그 이유는 CPU 디자인에 있어서 레지스터에 대한 이해가 아주중요하기 때문 레지스터를 디자인 하자 레지스터를 디자인하
프로세스의 이해 프로세스란 무엇인가? 프로세스 : 실행 중에 있는 프로그램 바탕화면에있는 blcok.exe 게임 - 프로그램 프로그램 클릭시 -> 메모리 할당 -> 메모리 공간으로 바이너리 코드 올라감 -> 이순간 부터 프로그램은 프로세스가 됨 프로세스를 구성
커널 오브젝트에 대한 이해 커널 : 컴퓨터를 운영하는 데 있어서 중심이 되는 운영체제 핵심 부분을 뜻함 일반적으로 커널이라는 용어와 운영체제라는 용어는 같은 의미로 사용되기 때문에 굳이 운영체제에서 커널이 차지하는 영역을 명확히 구분할 필요는 없다. 커널 오브젝트
프로세스간 통신(IPC)의 의미IPC는 Inter_Process Communication의 약자로서 "프로세스 사이의 통신"이라는 뜻을 지닌다. 프로세스들이 서로 통신한다는 것은 무엇을 의미하는 것일까? 통신이란 기본적으로 데이터를 주고 받는 행위이다. 따라서 프로세스
핸들 테이블과 오브젝트 핸들의 상속 -핸들 테이블의 이해 핸들 테이블은 핸들 정보를 저장하고 있는 테이블로서 프로세스별로 독립적이다. 쉽게 말하면 각각의 프로세스가 자신만의 핸들 테이블을 하나씩 구성하고 관리한다. 핸들 테이블의 상속 핸들테이블도 상속이 가능하다
프로세스란 실행되는 하나의 프로그램을 의미하는 것이고, 하나의 프로그램ㅇ 실행되기 위해서는 하나의 CPU가 필요하기 때문에 프로세스 수만큼 CPU가 존재할 수 있다면 이상적이겠지만 이는 불가능하다. 따라서 실행 중인 모든 프로세스들에게 골고루 cpu를 할당하는 스케줄
-절차적 함수 호출 지원 CPU 모델 함수 호출도 CPU의 도움을 받아야만 가능함. 함수 호출이라는것은 소프트웨어적인 그 무엇인가에 의해 제공되는 기능으로 이해하는 경향이 강함. 그러나 함수 호출이라는 기능은 하드웨어 종속적인 부분이 상당수 존재한다. 함수가 호출되
쓰레드란 무엇인가? -멀티 프로세스 기반 프로그램 위 그림에서 이니셜 P는 프로세스를 의미한다. 일반 사용자는 서버 접속용 클라이언트 프로그램을 이용해서 서버에 접속하고, 특정 서비스를 요구한다. 서버는 이러한 요구를 처리하기 위해사 요청이 있을 때마다 자식 프로세
01 . Windows에서의 쓰레드 생성과 소멸 -쓰레드의 생성 Windows에서 사용할 수 있는 가장 기본적인 쓰레드 생성 함수는 CreateThread이다. 이보다 더 이름이 명확할 수 있겠는가? 이 함수를 이용해서 쓰레드를 생성해 보도록 하겠다. HANDLE
01. 쓰레드 동기화란 무엇인가 -두 가지 관점에서의 쓰레드 동기화 여기서 우리가 말하고자 하는 동기화는 일치한다는 의미에서의 동기화가 아니라 순서에 있어서 질서가 지켜지고 있음을 의미하는 동기화 이다. 실행순서의 동기화 쓰레드의 실행순서 중요한 경우가 있따.
01 . 실행순서에 있어서의 동기화 쓰레드의 실행순서를 동기화한다 = 메모리에 접근하는 쓰레드의 실행순서를 동기화한다. 따라서 "실행순서 동기화"라는 것은 "메모리 접근 동기화"를 포함하는 개념이다. -생산자/소비자 모델 생산자는 문자열을 생성한다(입력받는다).
01 . 쓰레드 풀에 대한 이해 쓰레드의 생성과 소멸은 시스템에 많은 부담을 준다. 쓰레드가 한번 일을 수행하고 삭제된다면 매우 비효율 적임. 쓰레드 풀을 유지하는것이 성능 향상에 도움이 된다. 쓰레드 풀의 기본 워니는 쓰레드의 재활용이다. 할당된 일을 마친 쓰레드를
01. 메모리 계층 제한된 환경에서 가급적 높은 성능을 낼 수 있도록 프로그래밍 하기 위해서는 메모리의 특성을 잘파악하고 있어야 한다. 메모리의 범위와 종류 컴퓨터를 구성하는 요소 중에서 임시적이든,영구적이든 저장 기능을 조금이라도 가지고 있으면 무조건 메모리의 범
01 . SEH\-예외처리의 필요성프로그램을 실제흐름과 흐름에 대한 예외처리 영역으로 나누고 프로그램이 동작하는 주요 흐름을 파악하고싶다면 "프로그램의 실제 흐름"을예외처리 부분이 궁금하면 "흐름에 대한 예외처리 영역"을 보면된다. "프로그램의 실제 흐름"에 해당하는
01 . 기본적인파일 처리 함수들파일 열기 & 닫기파일을 열 때에는 다음 함수를 활용한다.HANDLE CreateFile ( 1\. LPCSTR lpFileName // 개방할 파일 이름을 지정한다. 3.DWORD dwShareMode // 파일 공유 방식을 지정
01 비동기 I/O\-비동기 i/o의 이해위 그림을 CPU 동작시간 관점에서 보면 플레이 할때는 CPU가 동작하고 데이터를 수신할 때에는 CPU가 동작하지 않는다. I/O는 CPU와 거의 독립적으로 수행되는 연산이기 때문이다.위그림과 같은 데이터 수신이 빈번하게 발생하
01 . 가상 메모리 컨트롤 Reserve,Commit 그리고 Free 리저브는 예약, 커밋은 할당, free는 할당되지 않았음을 의미한다. Windows 시스템에서 부여할 수 있도록 정의한 페이지의 상태를 의미하는것이다. 페이지의 총 개수는 다음과 같은 공식으로
라이브러리와 printf!도대체 실행 가능한 printf 함수의 바이너리는 어디에 있을까. stdio.h 파일안에는 printf 함수의 선언만이 존재할 뿐이다.해답은 라이브러리호출 가능한 printf 함수는 라이브러리 안에 있다. 라이브러리란 여러 프로그램에서 자주 사