본문 바로가기

Embedded Programming/컴구조&운영체제

프로세스의 메모리 영역 32비트 시스템에서 프로세스(실행 중인 프로그램) 생성시 4GB의 메모리를 할당받을 수 있는데,이는 램만으로는 충당하기엔 턱없이 부족하다.그래서 운영체제는 램과 하드디스크를 하나로 묶어 가상 메모리로 관리한다.대부분의 시스템에서는 주로 페이징(Paging)이라는 기법으로 가상 메모리를 관리한다.페이징 기법은 아직 모르므로-_-; 가상메모리의 영역에 대해서만 이야기해보자. 가상 메모리는 프로세스당 아래와 같은 구조를 가지는데,모두 5대영역으로 나뉜다. 아래 그림과 같이 데이터를 분류하여 각 영역에 저장하는 것이다. 위의 메모리 영역은 크게 두가지로 나눌 수 있는데 컴파일시 크기가 고정되는 code, data, bss 영역과 실행시 메모리가 할당되었다 반납되는 heap, stack영역으로 나눌 수 있다. ①.. 더보기
ASCII Code Table 아스키 코드 표 ASCII 코드란 American Standard Code for Information Interchange 의 약어로서, ANSI가 정의한 미국 표준 정보 교환 코드이다. 이는 영어를 비롯한 각종 기호들을 1 byte의 크기 범위내에서 표현할 수 있도록 정의한 것인데, 초창기에는 7 bit만 사용하여 0~127까지만 정의해 놓았다.(2의 7승개죠!) char형 변수에 각 문자의 10진수 값을 삽입해서 출력해보면 ASCII 코드를 확인해볼수 있다.(** Command창이나 메모장에서도 Alt+우측 키패드 숫자키를 입력하고 Alt키를 떼면 확인할 수도 있음!!)0~31번까지는 제어문자로 눈으로 확인하기가 쉽지 않다.아래표는 문자의 종류를 보기쉽게 분류해놓아서 첨부하기로 했어요~ㅋ 그리고 아래표는 127번부.. 더보기
컴퓨터의 음수 표현법(보수법, 컴퓨터 뺄셈 연산의 원리) 컴퓨터는 이진수만 이해할 수 있다. 그렇다면 음수는 어떻게 표현되는 것인가?이에 대해서는 두 가지 방법이 고안되었는데, 부호비트 방식과 보수법을 이용한 방식 두가지가 있다. ① 부호비트방식 이는 최상위 비트(Most Significant Bit)를 부호표기를 위해 남겨두는 방식이다.예를 들어 8 bit 자료의 경우에는 양수 1은 0000 0001, 음수는 1000 0001으로 표현하는 방식이다. 하지만, 이는 +0과 -0이라고 0이 두 개 존재하는 문제가 있고, 양수와 음수간의 연산이 어렵다는 단점이 있어 실수(float, double)방식의 표현에만 쓰인다. ② 2의 보수법 방식 보수(補數)는 각 자리의 숫자의 합이 어느 일정한 수가 되게 하는 수이다. - 위키백과 각 진법의 보수에는 같은 수의 보수법.. 더보기