컴퓨터 구조 29

[컴퓨터 구조](9)[운영체제의 추상화]

운영체제는 하드웨어를 관리한다.운영체제에서 사용되는 추상화 파일: 입출력 장치의 추상화 가상 메모리: 메인 메모리와 입출력 장치의 추상화 각 프로세스들이 메인 메모리를 독점으로 사용하는 것 같게 느끼게 함. 분할된 메모리 영역에서 가상주소를 받고 그걸 사용함. 예시) 프로세스 A가 메모리를 할당받는다면, A 속 어떤 명령의 가상 주소 = k, A 속 어떤 명령의 물리적 주소 = 프로세스 A의 물리적 주소 + k 프로세스: 프로세서, 메인 메모리, 입출력 장치의 추상화 프로세스는 여러개 동시에 실행 가능 (프로세스를 재빨리 바꿔 동시에 실행하는 것처럼 보임(context switching). 바뀔 때 실행한 내용은 저장하고 서로 참조함.) 요즘엔 프로세스를 쓰레..

CS/컴퓨터 구조 2025.01.17

[컴퓨터 구조](8)[하드웨어의 동작 + 암달의 법칙]

하드웨어에서 프로그램 동작프로그램이 저장 장치에서 메모리로 로드됨CPU가 메모리에서 명령어를 읽어 해석하고 실행결과를 레지스터나 메모리에 기록필요할 경우 I/O 장치와 상호작용프로그램 종료 후 시스템 리소스 해제하드웨어에서 프로그램 동작 예시1) hello를 출력하는 c파일을 만들고 저장하기키보드에 입력된 글자들은 USB Controller에서 처리Bus를 통해 IO Bridge에 전달 (IOBus -> IOBridge)Bus를 통해 CPU내부에 진입 후 Bus 인터페이스에서 처리 (IOBridge -> System Bus -> Bus Interface)이후 CPU에서 연산, 필요시 레지스터나 메모리 버스타고 가서 주기억장치에 저장(CPU -> System Bus IOBridge -> Memory Bus..

CS/컴퓨터 구조 2025.01.16

[컴퓨터 구조](7)[컴퓨터 구조 훑어보기]

컴퓨터 구조 훑어보기정보는 비트와 맥락으로 구성된다.맥락: 같은 비트 패턴이라도 정수, 부동소수점, 기계어 명령 등 다양하게 해석 가능프로그램 번역 과정(C언어)전처리 단계: 헤더파일 포함하기, 매크로 처리 등 (앞에 #붙는거 처리 (#include, #define...)) (hello.c -> hello.i)컴파일 단계: C컴파일러가 어셈블러로 바꿈 (hello.i -> hello.s)어셈블리 단계: 어셈블러가 기계어로 번역 (hello.s -> hello.o)링크 단계: 목적파일들 통합해 실행 파일 만듬 (hello.o -> hello(윈도우라면 exe))컴퓨터의 하드웨어 조직CPU(프로세서): 해독, 실행, 연산, 저장 등의 작업 수행프로그램 카운터: 작업이 수행되는 메모리의 주소를 가리킨다. (카..

CS/컴퓨터 구조 2025.01.15

[컴퓨터 구조](6)[부동 소수점의 연산]

부동소수점의 연산: 정확한 결과 계산 -> 원하는 정밀도에 맞추기 (지수가 너무 크면 오버플로우가 생길 수 있다.)근사값: 부동소수점을 원하는 정밀도로 맞추기 위해 사용반올림, 버림, 반내림 등등짝수 근사(기본 근사 모드): 기본적으론 반올림과 같지만, 딱 절반이 되는 값에서는 짝수가 되게 근사예시) (소수 첫째자리에서 근사) 7.3 -> 7, 7.9 -> 8, 7.5 -> 8, 8.5 -> 8이진수에서 짝수 근사: 0이 짝수라고 생각한다. 딱 절반은 100...0꼴이다.예시) (소수점 둘째자리까지) 10.11010 -> 10.11, 10.11111 -> 11.00, 11.01100 -> 11.10, 11.10100 -> 11.10예시) 부동소수점 10 101, 10 111, 10 110을 비율비트 2자..

CS/컴퓨터 구조 2025.01.14

[컴퓨터 구조](5)[부동 소수점]

이진수에서 소수 표현비율 이진수: 직점 소수점 찍어서 표현예시) 11.101 = 3+1/2+1/8 = 3.625오직 x/(2^k)형태로만 표현. 다른 분수는 완벽하게 떨어지지 않고 반복적 비트 패턴을 가짐.예시) 3/4 = 0.11, 1/3 = 0.01010101...또한 비트 범위 내에서만 소수 표현 가능 (너무 작은값은 비트 잘림)부동 소수점위 비율 이진수의 단점 극복하기 위해 IEEE가 정해놓은 표준표현할 수 = (-1)^s * M * 2^E꼴 (s = 부호, M = 유효숫자, E = 자릿값(지수))부동소수점 인코딩(정규화 값: exp != 0000... and exp != 11111...): 한정된 비트에서 부호, 지수부, 유효숫자에 각각 비트를 할당한다.s(부호) = 0(양수), 1(음수)exp..

CS/컴퓨터 구조 2025.01.13

[컴퓨터 구조](4)[정수의 연산]

컴퓨터에선 필요에 따라 자료형을 바꾼다 정수의 확장(작은 자료형 -> 큰 자료형)비부호형: 앞에 추가된 공간만큼 0을 추가부호형: 맨 앞 부호 비트를 추가된 공간만큼 추가정수의 절삭(큰 자료형 -> 작은 자료형)비부호형, 부호형: 맨 앞을 자르고 (비부호형)재번역특히 부호형은 절삭 시 값이 바뀌는 것에 주의 (물론 비부호형도 바뀌긴 함)예시) 비부호형 1010(10)을 3자리로 절삭: 010(2) (값 바뀜)예시) 부호형 1010(-6)을 3자리로 절삭: 010(2) (값 바뀜)정수의 덧셈일반적으로 덧셈하듯이 자리수가 넘어가면 올림을 한다. (w자리 비트 + w자리 비트 = w+1자리 비트 필요) 이때, 비트 개수가 정해져있으므로 맨 앞에 올림 된 비트는 잘린다.비부호형: 자동 행갈이(오버플로우로 버림)..

CS/컴퓨터 구조 2025.01.10

[컴퓨터 구조](3)[정수의 표시]

정수(int)의 표시컴퓨터에서의 정수는 이진수로 표현된다. 이때, 여러 규칙이 있다.비부호형(unsigned) 정수모든 비트를 정수를 이진수로 나타내는데 사용한다. 따라서 나타낼 수 있는 수는 (0~2^(비트 수)-1)이다.예시) 8개의 비트로 비부호형 정수를 나타낸다면, 0~255까지의 수를 나타낼 수 있다.2의 보수(Two's complement)x에 대한 y의 보수: x와 더했을 때 y가 되는 수2진수에서 1의보수: 0의 1의보수 = 1, 1의 0의 보수 = 02진수에서 2의 보수 = 1의 보수 + 1맨 앞자리는 부호를 표현한다. 0이면 +, 1이면 -이다. 따라서 나타낼 수 있는 수는 (-2^(비트수 -1) ~ 2^(비트수-1)-1)예시) 8개의 비트로 2의보수를 나타낸다면, -128~127을 나..

CS/컴퓨터 구조 2025.01.09

[컴퓨터 구조](2)[비트 연산]

불 대수논리값을 수로 표현하기 위해 사용0 = False, 1 = True비트 연산: 어느 내장 자료형에든 연산 가능&(and): 둘 다 1일때만 1|(or): 둘 중 하나만 1이여도 1~(not): 0이면 1, 1이면 0^(xor): 둘 중 하나만 1이어야 1예시) a = 1010, b = 1101 계산a&b = 1000a|b = 1111~a = 0101a^b = 0111논리 연산: 참 거짓 판별, 0이면 거짓, 그 이외의 값은&&(and): 둘 다 참이면 참||(or): 둘 중 하나만 참이여도 참!(not): 참 거짓 바꾸기예시) a = 1, b = 0, c = -1a&&b = 거짓, a&&c = 참!b = 참쉬프트 연산: 비트를 옆으로 이동시킴, 이동 시 없어지는 비트는 삭제하고 남은 자리는 논리적..

CS/컴퓨터 구조 2025.01.08

[컴퓨터 구조](1)[정보의 저장]

컴퓨터는 이진수로 자료를 처리한다.이진수: 0, 1 수를 셈예시) 우리가 10진수로 10을 셀 때, 1,2,3...,9까지 세고 1을 올림하여 세는 것처럼 2진수에서 2를 셀 떄도 1자리를 올린다. 2(십진수) = 10(이진수) 정보의 저장메모리에 이진수 비트 패턴들을 저장하고 불러오는 방식으로 컴퓨터는 동작한다.(폰 노이만 구조) 이때, 메모리에서 비트를 하나하나 읽는 것이 아닌 8개의 비트인 1바이트를 기준으로 읽는다. 그래서 메모리 1바이트마다 주소를 지정하고 읽을 수 있다.1바이트를 이진수 비트로 표시하면 10101010처럼 8자리 숫자가 된다. 너무 시인성이 떨어져서 2진수가 아닌 16진수로 나타내기도 한다. 1바이트를 4비트씩 끊어서 16진수 2개로 만든다.예시) 10100010(2진수) = ..

CS/컴퓨터 구조 2025.01.07
728x90
반응형