목록Computer/CS (10)
선릉역 1번 출구
블록킹과 논블록킹 그리고 동기와 비동기는 직접적인 관련은 없음 동기와 비동기: 프로세스의 수행 순서 보장에 대한 매커니즘 블록킹과 논블록킹: 프로세스의 유휴 상태에 대한 개념 제어권: 자신의 코드를 실행할 권리로 제어권을 가진 함수는 자신의 코드를 끝까지 실행한 후, 자신을 호출한 함수에게 돌려줌 결과값을 기다림: A 함수에서 B 함수를 호출했을 때, A 함수가 B 함수의 결과값을 기다리느냐의 여부를 의미 동기와 비동기 - 처리해야 할 작업들을 어떤 흐름으로 처리할 것인가에 대한 관점으로, 호출되는 함수의 작업 완료 여부를 신경쓰느냐에 따라 함수 실행/리턴 순차적인 흐름을 따르느냐와 안따르느냐의 관심사임 동기: 함수 A가 함수 B를 호출했을 때, 함수 B의 리턴값을 계속 확인하면서 신경쓰는 것 비동기: ..
RAM(메모리, 주 기억 장치) = 휘발성 저장 장치 vs 비휘발성 저장 장치(보조 기억 장치) RAM의 종류 DRAM(dynamic): 시간이 지나면 휘발됨 SRAM(static): 전력이 공급되는 중에는 사라지지 않음 SDRAM(synchronous dynamic): 동기식 DRAM 메모리의 주소 물리 주소: 메모리가 사용하는 하드웨어상의 주소 논리 주소: CPU와 실행 중인 프로그램이 사용하는 주소 물리 주소 = 논리 주소 + MMU(memory management unit) *메모리 보호 기법으로 베이스 레지스터와 한계 레지스터가 쓰임 -> 논리 주소는 한계 레지스터보다 클 수 없음! 저장 장치 계층 구조(memory hierarchy) : CPU와 얼마나 가까운가를 기준으로 계층적으로 나타낼 수..
클럭 - 컴퓨터 부품들은 '클럭 신호'에 맞춰 움직임 - CPU는 명령어 사이클에 맞춰 명령어를 실행함 클럭 신호가 빠름 -> 컴퓨터 부품들이 빠르게 움직임 -> CPU가 명령어 사이클을 더 빠르게 반복함 결론: 클럭 속도가 빠르면 일반적으로 CPU가 성능이 좋지만 속도만 높인다고해서 성능이 계속 좋아지지는 않음(발열 문제) 클럭 속도: 헤르츠(Hz) - 1초에 클럭이 몇 번 반복되는지를 나타냄 *속도가 일정한 것이 아니라 기본 클럭 속도(Base)와 최대 클럭 속도(Max)로 나뉨, 고성능을 요하는 순간에는 순간적으로 클럭 속도를 높임 +오버클럭킹: 최대 클럭 속도를 강제로 끌어 올리는 것 코어 and 멀티 코어 명령어를 실행하는 부품 = Core 과거의 CPU: 명령어를 실행하는 부품이 1개만 존재 ..
ALU: 계산을 담당하는 장치 INPUT: 레지스터를 통해 피연산자(operand)를 받아들이고, 제어장치로부터 수행할 연산을 알려주는 제어 신호를 받아 들임 OUTPUT: Integer Result를 레지스터에 저장하고 Status=flag(register)값을 내보냄 *결과값을 레지스터에 저장하는 이유는 메모리에 바로 저장하게 되면 cpu와 메모리 사이의 이동시간으로 느려지기 때문 flag의 종류 부호 플래그: 연산 결과가 음수인지 양수인지를 나타냄 제로 플래그: 연산 결과가 0인지 나타냄 캐리 플래그: 캐리가 발생했는지 나타냄 오버플로우 플래그: 오버플로우가 발생했는지 나타냄 인터럽트 플래그: 인터럽트가 가능한지 나타냄 슈퍼바이저 플래그: 커널 모드로 사용중인지, 사용자 모드로 실행 중인지를 나타냄..
컴퓨터: 명령어를 해석하는 기계 명령어: 컴퓨터를 작동시키는 중요한 정보 고급언어: 사람을 위한 언어 compile 언어: 컴파일러가 저급언어로 바꿔줌(정확히는 목적 코드), 컴파일러가 오류가 있는지/실행 가능한 코드인지 확인 후 오류가 있으면 실행 불가 interpreter 언어: 인터프리터가 저급언어로 바꿔줌(한 줄씩), 오류 발견 시 n-1번 째 코드까지는 실행 됨 *현대의 많은 프로그래밍 언어 중에는 컴파일 언어와 인터프리터 언어 간의 경계가 모호한 경우가 많음 저급언어: 컴퓨터를 위한 언어 기계어: 0과 1로 이루어진 언어 어셈블리어: 0과 1로 표현된 기계어를 읽기 편한 상태로 번역한 언어 컴파일 과정 1. 전처리 과정 - 헤더 파일 삽입(include 구문을 만나면 해당 헤더파일을 찾아 내용..
정보 단위: 컴퓨터가 표현할 수 있는 단위 bit: 제일 작은 정보 단위로 2가지를 표현 가능(0, 1) byte: 8bit = 1byte word: cpu가 한 번에 처리할 수 있는 데이터 크기로 현대 컴퓨터는 32 or 64를 사용함 이진법: 0, 1로만 데이터 표현 십진법: 10을 기수로 한 진법 십육진법: 16을 기수로 한 진법으로 A: 10, B: 11, C: 12, D: 13, E: 14, F: 15로 나타냄 *이진법과 십육진법의 변환이 쉬워서 십육진법을 잘 사용함 문자 집합: 컴퓨터가 인식하고 표현할 수 있는 문자의 모음 ASCII: 7bit로 영문 알파벳을 사용하는 대표적인 문자 집합 UNICODE: 전 세계의 모든 문자를 다루는 문자 집합 Encoding: 문자를 컴퓨터가 이해할 수 있는..