CS2 37

CS2 | CS 혼자 공부하는 컴퓨터 구조 + 운영체제 3-2. 명령어의 구조

연산 코드와 오퍼랜드명령어: 연산 코드와 오퍼랜드로 구성.1) 명령어에 오퍼랜드가 하나도 없을 수도 하나 이상 있을 수도 있다. - 0-주소 명령어: 오퍼랜드가 하나도 없는 명령어 - 1-주소 명령어: 오퍼랜드가 하나인 명령어- 2-주소 명령어: 오퍼랜드가 두 개인 명령어- 3-주소 명령어: 오퍼랜드가 세 개인 명령어 연산 코드(연산자): 명령어가 수행할 연산. 1) 데이터 전송- MOVE: 데이터를 옮겨라 - STORE: 메모리에 저장하라 - LOAD (FETCH): 메모리에서 CPU로 데이터를 가져와라 - PUSH: 스택에 데이터를 저장하라 - POP: 스택의 최상단 데이터를 가져와라 2) 산술/논리 연산- ADD / SUBTRACT / MULTIPLY / DIVIDE: 덧셈 / 뺄셈 / 곱셈 / 나..

CS2 2025.07.27

CS2 | CS 혼자 공부하는 컴퓨터 구조 + 운영체제 3-1. 소스 코드와 명령어

고급 언어와 저급 언어고급 언어: 사람을 위한 언어. 대부분의 프로그래밍 언어.저급 언어: 컴퓨터가 직접 이해하고 실행할 수 있는 언어. 고급 언어로 작성된 소스 코드가 실행되려면 반드시 저급 언 어, 즉 명령어로 변환되어야 한다.- 기계어: 0과 1의 명령어 비트로 이루어진 언어 - 어셈블리어: 0과 1로 이루어진 기계어를 읽기 편한 형태로 번역한 언어컴파일 언어와 인터프리터 언어고급 언어아 저급 언어로 변환되는 방법1) 컴파일 방식: 이 방식으로 작동하는 프로그래밍 언어를 컴파일 언어라고 한다. C언어. - 컴파일: 코드 전체가 저급 언어로 변환되는 과정 - 컴파일러: 소스 코드 전체에 문법적인 오류는 없는지, 실행 가능한 코드인지, 실행하는 데 불필요한 코드는 없는지 등을 따지며 소스 코..

CS2 2025.07.27

CS2 | CS 혼자 공부하는 컴퓨터 구조 + 운영체제 2-2. 0과 1로 문자를 표현하는 방법

문자 집합과 인코딩문자 집합: 컴퓨터가 인식하고 표현할 수 있는 문자의 모음. 문자 인코딩: 문자 집합에 속한 문자를 컴퓨터가 이해할 수 있도록 0과 1로 변환하는 과정. 문자 디코딩: 인코딩의 반대 과정으로, 0과 1로 이루어진 문자 코드를 사람이 이해할 수 있는 문자로 변환하는 과정.아스키 모드아스키: 초창기 문자 집합 중 하나로, 영어 알파벳과 아라비아 숫자, 그리고 일부 특수 문자를 포함. 각각 7비트로 표현(128). 실제로는 8비트인데, 1비트는 패리티 비트로 실질적이 아난 오류 검출을 위해 사용.아스키 코드: 아스키 문자에 대응된 고유한 수. 아스키 문자 집합에 0부터 127까지의 수가 할당되어 아스키 코드로 인코딩된다. 한글, 아스키 문자 집합 외의 문자, 특수문자를 표현하지 못해 확장 ..

CS2 2025.07.27

CS2 | CS 혼자 공부하는 컴퓨터 구조 + 운영체제 2-1. 0 과 1 로 숫자를 표현하는 방법

정보 단위비트: 0과 1을 나타내는 가장 작은 정보 단위. n비트는 2 n 가지 정보를 표현.바이트: 여덟 개의 비트를 묶은 단위로, 비트보다 한 단계 큰 단위. 256개의 정보 표현. 킬로바이트: 1바이트 1,000 개를 묶은 단위. 메가바이트: 1킬로바이트 1,000개를 묶은 단위. 기가바이트: 1메가바이트 1,000개를 묶은 단위. 테라바이트: 1기가바이트 1,000개를 묶은 단위. 워드: CPU가 한 번에 처리할 수 있는 데이터 크기. 워드 크기가 큰 CPU는 한 번에 처리할 수 있는 데이터가 많다. 현대 컴퓨터의 워드 크기는 대부분 32비트 또는 64비트.하프 워드: 워드의 절반 크기.풀 워드: 워드의 1배 크기.더블 워드: 워드의 2배 크기. 이진법이진법: 수학에서 0과 1만으로 ..

CS2 2025.07.27

CS2 | CS 혼자 공부하는 컴퓨터 구조 + 운영체제 1-2. 컴퓨터 구조의 큰 그림

컴퓨터가 이해하는 정보데이터: 컴퓨터가 이해하는 숫자, 문자, 이미지, 동영상과 같은 정적인 정보명령어: 데이터를 움직이고 컴퓨터를 작동시키는 정보. 프로그램은 명령어들의 모음이라고 정의되기도.컴퓨터의 4가지 핵심 부품컴퓨터의 핵심 부품1. 중앙처리장치(CPU): 메모리에 저장된 명령어를 읽어 들이고, 읽어 들인 명령어를 해석하고, 실행. - ALU: 계산 수행- 레지스터: 프로그램을 실행하는 데 필요한 값들을 임시 저장. CPU 안에 여러 레지스터 존재.- 제어장치: 제어신호(컴퓨터 부품들을 관리하고 작동시키기 위한 전기 신호)를 내보내고 명령어를 해석. 1) 제어 장치가 메모리에 메모리 읽기 제어 신호를 보낸다.2) 메모리는 CPU에 명령어를 전달하고, 이 명령어는 레지스터에 저장3) 제어장치가 ..

CS2 2025.07.27

CS2 | CS 혼자 공부하는 컴퓨터 구조 + 운영체제 1-1. 컴퓨터 구조를 알아야 하는 이유

문제 해결 컴퓨터 구조를 이해하고 있다면 문제 상황을 빠르게 진단할 수 있고, 문제를 해결 할 수 있다.성능, 용량, 비용성능, 용량, 비용을 판단해야 하는 상황에서 컴퓨토 구조에 대한 이해는 필수적이다. 🎯 면접 질문 1Q1. 컴퓨터 구조를 이해하면 소프트웨어 개발에 어떤 도움이 되나요?A1. 컴퓨터 구조를 이해하면 소프트웨어가 하드웨어 위에서 어떻게 실행되는지를 알 수 있어 성능 최적화나 자원 관리에 큰 도움이 됩니다. 예를 들어, CPU 캐시 구조나 파이프라이닝 동작을 이해하면 코드가 실제로 어떤 방식으로 실행되는지를 예측할 수 있고, 불필요한 병목을 줄일 수 있습니다. 또한, 메모리 계층 구조를 이해하면 데이터 접근 패턴을 최적화하거나 캐시 미스 등을 줄이는 등의 성능 개선이 가능합니다. 결국,..

CS2 2025.07.27

CS2 | CS 혼자 공부하는 컴퓨터 구조 + 운영체제 15-2. 파일 시스템

파일 시스템: 파일과 디렉터리를 보조기억장치에 일목요연하게 저장하고 접근 할 수 있게 하는 운영체제 내부 프로그램.파티셔닝과 포매팅새 하드디스크나 SSD에 파일을 생성하거나 저장하기 전에 필요한 행위1. 파티셔닝: 저장 장치의 논리적인 영역을 구획하는 작업- 파티션: 파티셔닝 작업을 통해 나 누어진 영역 하나하나2. 포매팅: 파일 시스템을 설정하여 어떤 방식으로 파일을 저장하고 관리할 것인지를 결정하고, 새로운 데이터를 쓸 준비를 하는 작업. 저장장치를 완전히 삭제하는 것은 부정확한 표현. - 저수준 포매팅: 저장 장치를 생성할 당시 공장에 서 수행되는 물리적인 포매팅- 논리적 포매팅: 파일 시스템을 생성하는 포매팅 파일 할당 방법운영체제는 파일과 디렉터리를 블록 단위로 읽고 쓴다.하드 디스크의 ..

CS2 2025.07.20

CS2 | CS 혼자 공부하는 컴퓨터 구조 + 운영체제 15-1. 파일과 디렉터리

파일파일: 하드 디스크나 SSD와 같은 보조기억장치에 저장된 관련 정보의 집합. 파일은 의미와 관련 있는 정보를 모은 논리적 단위. - 속성(메타 데이터): 파일 관련 부가 정보- 파일 속성: 파일 형식, 위치, 크기 등 파일과 관련된 다양한 정보(유형-운영체제가 인식하는 파일 종류. 흔히 확장자 이용, 크기, 보호, 생성 날짜, 마지막 접근 날짜, 마지막 수정 날짜, 생성자, 소유자, 위치)- 파일 연산을 위한 시스템 호출디렉터리디렉터리(폴더): 파일 관리 위해 사용- 트리 구조 디렉터리- 루트 드렉터리: 트리 구조 디렉터리의 최상위 드렉터리- 경로: 디렉터리를 이용해 파일 위치, 나아 가 파일 이름을 특정 짓는 정보- 절대 경로: 루트 디렉터리에서 자기 자신까지 이르는 고유한 경로- 상대 경로..

CS2 2025.07.20

CS2 | CS 혼자 공부하는 컴퓨터 구조 + 운영체제 14-3. 페이지 교체와 프레임 할당

요구 페이징요구 페이징: 실행에 요구되는 페이지만 적재 하는 기법. 1. CPU가 특정 페이지에 접근하는 명령어를 실행한다. 2. 해당 페이지가 현재 메모리에 있을 경우(유효 비트가 1일 경우) CPU는 페이지가 적재된 프레임에 접근한다. 3. 해당 페이지가 현재 메모리에 없을 경우(유효 비트가 0일 경우) 페이지 폴트가 발생한다.4. 페이지 폴트 처리 루틴은 해당 페이지를 메모리로 적재하고 유효 비트를 1로 설정한다.5. 다시 처음부터 수행.- 순수 요구 페이징: 아무런 페이지도 메모리에 적재하지 않은 채 무작정 실행. 첫 명령어 실행 부터 페이지 폴트 계속 발생하고 어느 정도 적재된 후 빈도가 떨어진다.페이징 교체 알고리즘페이징 교체 알고리즘: 요구 페이징 기법으로 페이지를 적재하다 보면 메모리가..

CS2 2025.07.20

CS2 | CS 혼자 공부하는 컴퓨터 구조 + 운영체제 14-2. 페이징을 통한 가상 메모리 관리

가상 메모리: 프로그램 일부만 메모리에 적재하여 실제 물리 메모리 크기보다 더 큰 프로세스를 실행할 수 있게 하는 기술(페이징, 세그멘테이션).페이징페이징: 메모리의 물리 주소 공간을 프레임 단위로 자르고, 프로세스의 논리 주소 공간을 페이지 단위로 자른 뒤 각 페이지를 프레임에 할당하는 가상 메모리 관리 기법. 외부 단편화가 발생하지 않는다. 스와핑 사용 가능(프로세스 전체가 아닌, 페이지 단위로 스왑 아웃/스왑 인. 페이지 아웃/페이지 인으로 부르기도). 프로세스 전체가 아닌 실행에 필요한 일부 페이지만 메모리에 적재하고 필요하지 않은 페이지들은 보조기억장치에 남겨둘 수 있다.- 페이지: 프로세스의 논리 주소 공간 단위- 프레임: 메모리 물리 주소 공간 단위. 페이지와 동일한 크기.페이지 테이블페이..

CS2 2025.07.20