Merry(29)
-
1-5. 프로세스
+프로세스? 실행중인 프로그램 ( 심플하다 ) 메모리 공간에 프로그램의 실행 바이너리 코드가 올라간다 -> 프로그램이 프로세스가 된다 +프로세스의 메모리 구성 Data 영역 : 전역변수, Static 변수 할당을 위해 존재하는 영역 Stack 영역 : 지역변수 할당과 함수 호출 시 전달되는 인자값들의 보관을 위해 존재하는 영역 Heap 영역 : 동적할당을 위해서 존재하는 영역 Code 영역 : 실행파일을 구성하는 명령어들이 올라가는 영역 +프로세스의 스케줄링 ( Process Scheduling ) -스케줄링? CPU 는 하나이고 실행 중인 프로세스가 다수 일 때, 프로세스의 CPU 할당 순서를 결정짓는 일 프로세스마다 우선순위가 정해져있고, 이 순위에 따라 CPU에 의해 실제 실행할 프로세스를 결정한다..
2015.12.28 -
1-3. 운영체제 32bit vs 64bit
+운영체제 32bit 64bit 인지 구분짓는 기준 CPU가 한 번에 송.수신 할 수 있는 데이터 크기와 한 번에 처리할 수 있는 데이트 크기 한 번에 송.수신 할 수 있는 데이터 크기가 32bit 이다 -> 메모리 주소값이 32bit 로 표현된다 -> 활용할 수 있는 RAM 크기는 4GB 이다 한 번에 송.수신 할 수 있는 데이터 크기가 64bit 이다 -> 메모리 주소값이 64bit 로 표현된다 -> 활용할 수 있는 RAM 크기는 2의 64승 Byte +64 비트와 32 비트 공존의 문제점 -포인터 크기와 자료형 크기가 다르다 32 bit : int 형 4바이트, 포인터 형 4바이트 64 bit : int 형 4바이트, 포인터 형 8바이트 64비트 환경에서 아래와 같은 소스를 실행하면 데이터 손실이 ..
2015.12.20 -
1-4. 메모리 접근 방식
CPU 에서 메모리에 접근할 때 두 가지 방식이 있다. +메모리 접근 방식 - Direct Addressing 모드 - Indirect Addressing 모드 CPU 에는 명령어들이 있는데, 메모리에 접근하여 해당 주소값의 데이터를 CPU의 레지스터로 가져오는 명령어가 있다. 이 명령어가 LOAD 라고 가정하고, LOAD 0x0011 위 명령어는 0x0011 메모리주소의 데이터를 CPU 레지스터로 가져온다는 의미이다. 입력된 메모리 주소의 데이터를 가져오는 방식을 Direct Addressing 이라고 한다. 하지만, LOAD 다음에 오는 주소표현에는 범위적으로 한계가 있다. ( 모든 메모리 주소를 표현할 수 없다 ) 이 문제를 해결하기 위해 Indirect Addressing 이 사용된다. Indir..
2015.12.20 -
1-2. 문자셋 ( CharacterSet )
문자셋 ( CharacterSet ) - SBCS ( Single Byte Character Set ) - MBCS ( Multi Byte Character Set ) - WBCS ( Wide Byte Character Set ) SBCS ? - 문자를 표현하는데 1byte 를 사용 - 256 가지의 문자를 표현할 수 있다 -> 영어 - 아스키코드 기반 문자 MBCS ? - 문자를 표현하는데 1byte , 2byte 를 혼용함 - "ABC한글" -> 같은 경우 문자열 길이가 잘못 측정되는 문제가 발생할 수 있음 이런 이슈를 처리하는 주의가 필요함 WBCS ? - 문자를 표현하는데 2byte 를 사용 - 유니코드 기반 문자 ex) char str[] = "ABC한글"; printf("배열크기 : %d\n"..
2015.12.20 -
1-1. 프로그램의 실행과정
*실행파일 생성 흐름 전처리기 -> 컴파일러 -> 어셈블러 -> 링커 +전처리기 #로 시작하는 지시자의 지시에 따라 소스코드를 변경하는 작업 수행 ex) #include, #define ..etc +컴파일러 소스코드를 어셈블리 코드로 번역하는 작업수행 어셈블리 코드? CPU 에게 작업을 시키기 위한 명령어 ex) +어셈블러 어셈블리 코드를 Binary Code 로 변경하는 작업 수행 Binary Code ? 1 과 0 으로만 구성된 코드 -> CPU는 1과0만 인식 +링커 프로그램 내에서 참조하는 함수, 라이브러리들을 연결시켜주는 작업을 수행 tip. 컴파일 중에 LNKXXX 에러가 뜨며, 함수를 찾을 수 없다는 에러를 본 적이 있을 것이다 *프로그램 실행 과정 Fecth -> Decode -> Exec..
2015.12.16 -
1. 컴퓨터 하드웨어의 구성
CPU 중앙처리장치 연산 담당 컴퓨터의 머리 메인메모리 ( RAM ) 컴파일이 완료된 프로그램 코드가 올라가서 실행되는 영역 프로그램이 실행되기 위한 메모리 입출력 버스 ( Input/Output Bus ) 컴퓨터를 구성하는 구성요소 끼리 데이터를 주고받기 위한 경로 - 어드레스 버스 - 데이터 버스 - 컨트롤 버스 *About CPU +구성 -ALU 실질적인 명령어 연산 -컨트롤 유닛 명령어 해석 및 전달 -레지스터 명령어 보관 - Binary Data 저장 -버스 인터페이스 명령어 및 데이터를 CPU 로 이동 +Clock Purse ( 클럭 신호 ) Clock Purse 마다 CPU 의 구성요소들은 일을 수행한다 ㄴwhy? 명령처리 동기화를 해야하기 때문에
2015.12.15