Skip to content

GreenIdealist/ComputerOperationSystem

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 

Repository files navigation

ComputerOperationSystem

컴퓨터 구조 및 운영체제 수업

목표 1.서버가 느릴 때 무엇부터 볼 것인가? 2.메모리 부족과 하드웨어 불량을 어떻게 구분할 것인가 3.디스크 장애 경고가 떴을 때 왜 바로 뽑으면 안 되는가 4.네트워크가 안 될 때 물리 계층부터 봐야 하는 이유는 무엇인가 5.부팅 실패나 커널 로그에서 어떤 단서를 찾아야 하는가

컴퓨터가 이해하는 두 가지 정보

컴퓨터 구조

1.컴퓨터가 이해하는 정보 1-1)데이터 : 컴퓨터가 이해하는 숫자, 문자, 이미지, 동영상과 같은 정적인 정보를 가리켜 데이터라고 합니다. 1-2)명령어 : 데이터는 명령어 없이는 아무것도 할 수 없는 정보 덩어리일 뿐이지만, 명령어는 데이터를 움직이고 컴퓨터를 작동시키는 정보입니다.

2.컴퓨터의 네 가지 핵심 부품 2-1. CPU 2-2. 메모리 2-3. 보조기억장치 2-4. 입출력장치

메모리

메모리 : 현재 실행되는 프로그램의 명령어와 데이터를 저장하는 부품입니다. 프로그램이 실행되려면 반드시 메모리에 저장되어 있어야 합니다.

메모리 속 명령어와 데이터는 효율적으로 접근하기 위해 주소라는 개념이 사용됩니다.

CPU

CPU : 메모리에 저장된 명령어를 읽어 들이고, 읽어 들인 명령어를 해석하고, 실행하는 부품입니다.

CPU 내부 구성 요소 중 가장 중요한 세 가지는 ALU(산술논리연산장치), 레지스터(register), 제어장치(CU)입니다.

ALU는 계산만을 위해 존재하는 부품. 레지스터는 CPU 내부의 작은 임시 저장 장치입니다. 프로그램을 실행하는 데 필요한 값들을 임시로 저장합니다. 저장장치는 제어 신호라는 전기 신호를 내보내고 명령어를 해석하는 장치입니다. 여기서 제어 신호란 컴퓨터 부품들을 관리하고 작동시키기 위한 일종의 전기 신호입니다.

CPU가 메모리에 저장된 값을 읽고 싶을 땐 메모리를 향해 [메모리 읽기]라는 제어 신호를 보낸다. CPU가 메모리에 어떤 값을 저장하고 싶을 땐 메모리를 향해 메모리를 향해 [메모리 읽기]라는 제어 신호를 보낸다.

보조기억 장치

메모리는 두 가지 단점이 있습니다. 첫 째는 가격이 비싸 용량이 작다는 점, 둘 째는 전원이 꺼지면 저장된 내용이 없어진다는 점. 메모리가 크기가 크고 전원이 꺼져도 저장된 내용을 잃지 않는 메모리를 보조할 저장 장치가 필요합니다. 이 저장 장치가 보조기억장치입니다.

입출력 장치

마이크, 스피커, 프린터, 마우스, 키보드처럼 컴퓨터 외부에 연결되어 컴퓨터 내부와 정보를 교환하는 장치를 의미합니다.

메인보드와 시스템 버스

위의 컴퓨터의 핵심 부품들은 모두 [메인보드]라는 판에 연결됩니다. 메인보드는 마더보드라고 부릅니다. 메인보드에는 부품을 비롯한 여러 컴퓨터 부품을 부착할 수 있는 슬롯과 단자가 있습니다. 메인보드에 연결된 부품들은 서로 정보를 주고받을 수 있습니다.

이는 메인보드 내부에 버스라는 통로가 있기 때문입니다. 여러 버스 가운데, 컴퓨터의 네 가지 핵심 부품을 연결하는 가장 중요한 버스는 시스템 버스입니다. 시스템 버스는 주소 버스, 시스템 버스, 제어 버스로 구성되어 있습니다.

CPU에서 버스를 통해 작동하는 방법

CPU 메모리 읽기

1.제어 버스로 '메모리 읽기' 제어 신호를 내보내기. 2.주소 버스로 읽고자 하는 주소를 내보내기 3.메모리는 데이터 버스로 CPU가 요청한 주소에 있는 내용 내보내기.

CPU 메모리 저장하기

1.데이터 버스를 통해 메모리에 저장할 값 확인하기. 2.주소 버스를 통해 저장할 주소 확인하기. 3.제어 버스를 통해 "메모리 쓰기" 제어 신호를 내보내기.

0과 1로 문자를 표현하는 방법

문자 집합 : 컴퓨터가 인식하고 표현할 수 있는 문자의 모음 문자 인코딩 : 문자를 컴퓨터가 이해할 수 있는 0과 1로 변환하는 과정 문자 디코딩 : 0와 1로 이루어진 문자 코드를 사람이 이해 할 수 있는 문자로 변환하는 과정

아스키 코드

아스키는 초창가 문자 집합 중 하나로, 영어 알파벳과 아라비아 숫자, 그리고 일부 특수 문자를 포함합니다. 아스키 문자 집합에 속한 문자(아스키 문자)들은 7비트로 표현됩니다.

EUC-KR

아스키 코드는 매우 간단하게 인코딩된다는 장점이 있지만, 단점으로 한글을 표현할 수 없습니다. 이런 이유로 등장한 한글 인코딩 방식이 EUC-KR 방식입니다. EUC-KR 인코딩된 한글 한 글자를 표현하려면 16비트가 필요합니다. EUC-KR 인코딩 방식으로 2,350개 정도의 한글 단어를 표현할 수 있습니다. 아스키 코드보다 표현할 수 있는 문자가 많아졌지만, 사실 이는 모든 한글 조합을 표현할 수 있을 정도로 많은 양은 아닙니다. 그래서 문자 집합에 정의되지 않는 쀍, 쀓, 믜 같은 글자는 EUC-KR로 표현할 수 없습니다.

UTF-8

유니코드는 EUC-KR보다 훨씬 다양한 한글을 포함하며 대부분 나라의 문자, 특수문자, 화살표나 이모티콘까지도 코드로 표현할 수 있는 통일된 문자 집합입니다. 유니코드는 글자에 부여된 값 자체를 인코딩된 값으로 삼지 않고 이 값을 다양한 방법으로 인코딩합니다. UTF-8은 통산 1바이트부터 4바이트까지의 인코딩 결과를 만들어 냅니다. 다시 말해 UTF-8로 인코딩한 값의 결과는 1바이트가 될 수도 2바이트, 3바이트, 4바이트가 될 수도 있습니다. 한글을 UTF-8로 인코딩하면 3바이트로 표현될 것입니다.

명령어

고급언어 : 컴퓨터 언어를 사람이 이해하기 쉽게 변환한 언어 저급언어 : 컴퓨터가 이해하고 실행할 수 있는 언어 기계어 : 0과 1로 만들어진 언어 어셈블리어 : 기계어를 사람이 읽기 쉽게 만든 언어

컴파일 언어 : 컴파일러에 의해 소스 코드 전체가 저급 언어로 변환되어 실행되는 고급 언어 소스 코드 전체가 저급 언어로 변환되는 과정을 [컴파일]이라고 합니다. 컴파일을 수행해 주는 도구를 컴파일러라고 합니다. 컴파일러는 작성한 코드에 문법적인 오류가 있다면 소스 코드는 컴파일에 실패합니다.

컴파일이 성공적으로 수행되면 개발자가 작성한 소스 코드는 컴퓨터가 이해할 수 있는 저급 언어로 변환됩니다. 이렇게 컴파일러를 통해 저급 언어로 변환된 코드를 목적 코드라고 합니다.

인터프리터 언어 : 소스 코드를 한 줄씩 실행하는 고급 언어. 대표적인 인터프리터 언어는 Python입니다. 인터프리터 언어는 한 줄씩 실행하기 때문에 전체를 저급 언어로 변환하는 시간을 기다릴 필요가 없습니다.

이미지로 이루어진 파일을 이미지 파일이라 부르고, 텍스트로 이루어진 파일을 텍스트 파일이라고 부르듯이 목적 코드로 이루어진 파일을 목적 파일이라고 부릅니다. 실행 코드로 이루어진 파일을 실행 파일이라 부릅니다. 윈도우의 .exe 확장자를 가진 파일이 대표적인 실행 파일입니다. 목적 코드는 컴퓨터가 이해하는 저급 언어. 목적 코드가 실행 파일이 되기 위해서는 링킹이라는 작업을 거쳐야 합니다.

목적 파일# CPU에서 버스를 통해 작동하는 방법

CPU 메모리 읽기

1.제어 버스로 '메모리 읽기' 제어 신호를 내보내기. 2.주소 버스로 읽고자 하는 주소를 내보내기 3.메모리는 데이터 버스로 CPU가 요청한 주소에 있는 내용 내보내기.

CPU 메모리 저장하기

1.데이터 버스를 통해 메모리에 저장할 값 확인하기. 2.주소 버스를 통해 저장할 주소 확인하기. 3.제어 버스를 통해 "메모리 쓰기" 제어 신호를 내보내기.

0과 1로 문자를 표현하는 방법

문자 집합 : 컴퓨터가 인식하고 표현할 수 있는 문자의 모음 문자 인코딩 : 문자를 컴퓨터가 이해할 수 있는 0과 1로 변환하는 과정 문자 디코딩 : 0와 1로 이루어진 문자 코드를 사람이 이해 할 수 있는 문자로 변환하는 과정

아스키 코드

아스키는 초창가 문자 집합 중 하나로, 영어 알파벳과 아라비아 숫자, 그리고 일부 특수 문자를 포함합니다. 아스키 문자 집합에 속한 문자(아스키 문자)들은 7비트로 표현됩니다.

EUC-KR

아스키 코드는 매우 간단하게 인코딩된다는 장점이 있지만, 단점으로 한글을 표현할 수 없습니다. 이런 이유로 등장한 한글 인코딩 방식이 EUC-KR 방식입니다. EUC-KR 인코딩된 한글 한 글자를 표현하려면 16비트가 필요합니다. EUC-KR 인코딩 방식으로 2,350개 정도의 한글 단어를 표현할 수 있습니다. 아스키 코드보다 표현할 수 있는 문자가 많아졌지만, 사실 이는 모든 한글 조합을 표현할 수 있을 정도로 많은 양은 아닙니다. 그래서 문자 집합에 정의되지 않는 쀍, 쀓, 믜 같은 글자는 EUC-KR로 표현할 수 없습니다.

UTF-8

유니코드는 EUC-KR보다 훨씬 다양한 한글을 포함하며 대부분 나라의 문자, 특수문자, 화살표나 이모티콘까지도 코드로 표현할 수 있는 통일된 문자 집합입니다. 유니코드는 글자에 부여된 값 자체를 인코딩된 값으로 삼지 않고 이 값을 다양한 방법으로 인코딩합니다. UTF-8은 통산 1바이트부터 4바이트까지의 인코딩 결과를 만들어 냅니다. 다시 말해 UTF-8로 인코딩한 값의 결과는 1바이트가 될 수도 2바이트, 3바이트, 4바이트가 될 수도 있습니다. 한글을 UTF-8로 인코딩하면 3바이트로 표현될 것입니다.

명령어

고급언어 : 컴퓨터 언어를 사람이 이해하기 쉽게 변환한 언어 저급언어 : 컴퓨터가 이해하고 실행할 수 있는 언어 기계어 : 0과 1로 만들어진 언어 어셈블리어 : 기계어를 사람이 읽기 쉽게 만든 언어

컴파일 언어 : 컴파일러에 의해 소스 코드 전체가 저급 언어로 변환되어 실행되는 고급 언어 소스 코드 전체가 저급 언어로 변환되는 과정을 [컴파일]이라고 합니다. 컴파일을 수행해 주는 도구를 컴파일러라고 합니다. 컴파일러는 작성한 코드에 문법적인 오류가 있다면 소스 코드는 컴파일에 실패합니다.

컴파일이 성공적으로 수행되면 개발자가 작성한 소스 코드는 컴퓨터가 이해할 수 있는 저급 언어로 변환됩니다. 이렇게 컴파일러를 통해 저급 언어로 변환된 코드를 목적 코드라고 합니다.

인터프리터 언어 : 소스 코드를 한 줄씩 실행하는 고급 언어. 대표적인 인터프리터 언어는 Python입니다. 인터프리터 언어는 한 줄씩 실행하기 때문에 전체를 저급 언어로 변환하는 시간을 기다릴 필요가 없습니다.

이미지로 이루어진 파일을 이미지 파일이라 부르고, 텍스트로 이루어진 파일을 텍스트 파일이라고 부르듯이 목적 코드로 이루어진 파일을 목적 파일이라고 부릅니다. 실행 코드로 이루어진 파일을 실행 파일이라 부릅니다. 윈도우의 .exe 확장자를 가진 파일이 대표적인 실행 파일입니다. 목적 코드는 컴퓨터가 이해하는 저급 언어. 목적 코드가 실행 파일이 되기 위해서는 링킹이라는 작업을 거쳐야 합니다.

목적 파일 helper.c 와 main.c 파일운 helper.o와 main.o 라고 지칭한다면, main.o는 저급 언어니까 바로 실행할 수 없습니다. main.o에 없는 외부 기능들을 연결 짓는 작업이 필요합니다. 이러한 연결 작업이 링킹입니다. 링킹 작업까지 거치면 실행 파일이 만들어집니다.

명령어 구조

명령어는 연산 코드와 오퍼랜드로 구성되어 있습니다.

About

컴퓨터 구조 및 운영체제 수업

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages