본문 바로가기
728x90

Computer Science39

[C언어] C언어의 메모리 관리 [C언어] C언어의 메모리 관리 함수가 사용될 때 메모리가 얼마나 필요한가? 메인 함수를 구성하고 있는 지역변수와 사이즈를 보면 된다. 운영체제는 메인함수가 실행될 때, 메모리 공간을 확보해둔다. 몇 바이트가 필요한지는 실행해봐야 알 수 있을까? 소스코드 -> 컴파일 => 실행파일 => OS에 의해 실행 컴파일 타임 런타임 컴파일에 의해 미리 알 수 있다. 컴파일러는 정적 분석을 통해 int가 몇 개 있는지를 확인할 수 있다. 그렇기 때문에 런타임 시에 그 함수가 실행될 때, 메모리 안에 그 함수가 필요한 크기 만큼의 집을 마련해준다. 함수라는 집 공간 안에 int i, int j 등의 방이 만들어진다. 그러고 printf 라는 함수가 더해진다고 하면, printf를 위해 만들어 지는 집이 따로 만들어진.. 2022. 6. 27.
운영체제 32비트와 64비트의 차이점 운영체제 32비트와 64비트의 차이점 운영체제의 비트(32bit, 64bit) 32비트 os, 64비트 os의 차이가 무엇일까? 32비트 os는 32비트 cpu에 맞춰진 os이고, 64비트 os는 64비트 cpu에 맞춰진 os이다. 레지스터가 cpu에서 사용하는 기본 저장 단위이다. 16, 32, 64비트 등이 있는데, 메모리 주소 레지스터라고 있다. 메모리의 주소를 담는 레지스터가 있는데, 이 크기의 차이인 것이다. 메모리 주소의 기본 단위가 다른 것이다. 2022.06.27 - [분류 전체보기] - [컴퓨터구조] CPU와 운영체제 그리고 메모리 램은 hdd와 cpu간의 속도 차이를 보완해준다. 램은 하드디스크로부터 일정량의 데이터를 임시로 저장하고 느린 하드디스크를 대신해서 램과 cpu과 데이터를 교.. 2022. 6. 27.
[컴퓨터구조] CPU와 운영체제 그리고 메모리 [컴퓨터구조] CPU와 운영체제 그리고 메모리 1. CPU의 구조 CPU는 Control unit, ALU, 레지스터 세 가지로 구성되어 있다. Control unit은 어떤 일을 진행하는 것을 계획하는 등 총괄하는 것 ALU는 계산만 한다. 빠르게 처리. 레지스터는 기억력을 담당한다. cpu에 내장되어 있는 용량이 작은 기억장치이라고 보면 된다. 상세 구성, 비유 Control Unit : 매니저 ALU : 계산 레지스터, 프로그램 카운터 : 현재 실행중인 소스코드 라인을 가리킴. 레지스터, 명령어 레지스터 : 현재 실행중인 명령어를 실질적으로 가져온다. 레지스터, 메모리 주소 레지스터 : 타켓(목표하는 데이터가 있는 메모리의 주소) 레지스터, 메모리 데이터 레지스터 : 타겟에서 가져온 데이터 혹은, .. 2022. 6. 27.
[C언어] 데이터 타입별 메모리 크기 [C언어] 데이터 타입별 메모리 크기 메모리 관리는 아주 중요하다. 변수에 담고자 하는 값의 크기에 따라 변수의 타입을 선언해주는 것이 좋다. 속도에 있어서 민감하기 때문이다(그렇지만 요즘은 기술이 워낙 발달해서 대충.. 쓰기도 한다고...). 아무튼 타입별 메모리 크기를 알아야 많은 에러에서 벗어날 수 있다. 더불어 다른 언어도 이와 메모리 크기, 이름은 같거나 비슷하니 여기서 알아놓으면 된다. 아래에서는 자료형 별로 차지하는 메모리의 크기를 알아볼 것이다. 1) 정수형 타입 정수형 자료형 크기 자료형 값의 범위 char 1byte -128이상 +127이하 short 2byte -32,768이상 +32,767이하 int 4byte -2,147,483,648이상 +2,147,483,647이하 long 4.. 2022. 6. 25.
[C언어] char 타입으로 배열 만들기 [C언어] char 타입으로 배열 만들기 char 형식은 -128부터 127까지의 정수를 표현할 수 있는 정수 형식이다. char 형식은 문자 하나를 표현할 때 많이 사용한다. 형식 지정자는 ‘%c’이다. char 자료형은 1바이트로, 한 글자만 저장된다. 여러 글자를 담기 위해서는 배열을 이용해야 한다. ex) char a = ‘ab’; => b만 변수에 담기게 된다. int i = ‘a’ 도 된다. ‘a’가 아스키코드로 값이 97이기 때문이다. 여러 글자를 변수에 담기 위해서는 char ch[5] = {‘a’, ‘b’, 0, ‘c’, ‘d’}; 이런 식으로 문자를 담아야 한다. c에서는 끝을 알려주는 것이 0인데, 컴퓨터가 0을 보면 문자열의 끝이라고 인식하게 된다. (c, d)는 출력되지 않는다. .. 2022. 6. 25.
컴퓨터의 기본 메모리 구조(순차접근, 임의접근) 컴퓨터의 기본 메모리 구조(순차접근, 임의접근) 💡 순차접근(sequential access) vs 임의접근(random access) 순차접근 리스트에 접근하는 것처럼 순차적으로 접근을 한다. 1~100번의 주소가 있다면, 1부터 시작해서 읽어나가는 것이다. 하드디스크(Hard Disk Drive)가 순차접근의 방법을 취한다. 임의접근 램의 경우 이름에 걸맞게 임의접근의 방법을 취한다(Random Access Memory). 그렇기 때문에 전원이 꺼지면 데이터가 유실된다. SSD(Solid State Drive)의 경우, 임의접근을 해서 필요한 공간의 데이터를 바로 가져올 수 있다. 그러나 HDD 보다는 덜 안정적이다. 데이터를 연속적으로 받아올 때 HDD보다 효율이 떨어진다. ++ 디스크 조각모음 요.. 2022. 6. 25.
728x90