마인드 맵 갤러리 프로그램 실행 방법
이 책은 컴퓨터 실무자들에게 컴퓨터의 구성, CPU, 이진연산, 메모리, 운영체제, 프로그램 실행, 조립, 하드웨어 제어, 기계학습 등을 소개하여 독자들이 프로그램이 다양한 과정을 거치는 과정을 심층적으로 이해할 수 있도록 해준다. 컴퓨터에서 실행하기(Running in Your Computer)는 컴퓨터 애호가와 실무자가 꼭 읽어야 할 인기 과학 서적입니다.
2024-01-18 19:32:06에 편집됨이것은 (III) 저산소증-유도 인자 프롤릴 하이드 록 실라 제 억제제에 대한 마인드 맵이며, 주요 함량은 다음을 포함한다 : 저산소증-유도 인자 프롤릴 하이드 록 실라 제 억제제 (HIF-PHI)는 신장 빈혈의 치료를위한 새로운 소형 분자 경구 약물이다. 1. HIF-PHI 복용량 선택 및 조정. Rosalasstat의 초기 용량, 2. HIF-PHI 사용 중 모니터링, 3. 부작용 및 예방 조치.
이것은 Kuka Industrial Robots의 개발 및 Kuka Industrial Robot의 모션 제어 지침에 대한 마인드 맵입니다. 주요 내용에는 쿠카 산업 로봇의 역사, 쿠카 산업 로봇의 특성, 쿠카 산업 로봇의 응용 분야, 2. 포장 프로세스에서 쿠카 로봇은 빠르고 일관된 포장 작업을 달성하고 포장 효율성을 높이며 인건비를 줄입니다. 2. 인건비 감소 : 자동화는 운영자에 대한 의존성을 줄입니다. 3. 조립 품질 향상 : 정확한 제어는 인간 오류를 줄입니다.
408 컴퓨터 네트워크가 너무 어렵습니까? 두려워하지 마세요! 나는 피를 구토하고 지식 맥락을 명확히하는 데 도움이되는 매우 실용적인 마인드 맵을 분류했습니다. 컨텐츠는 매우 완전합니다. 네트워크 아키텍처에서 응용 프로그램 계층, TCP/IP 프로토콜, 서브넷 디비전 및 기타 핵심 포인트에 이르기까지 원칙을 철저히 이해하는 데 도움이 될 수 있습니다. 📈 명확한 논리 : Mindmas 보물, 당신은 드문 기회가 있습니다. 서둘러! 이 마인드 맵을 사용하여 408 컴퓨터 네트워크의 학습 경로에서 바람과 파도를 타고 성공적으로 해변을 얻으십시오! 도움이 필요한 친구들과 공유해야합니다!
이것은 (III) 저산소증-유도 인자 프롤릴 하이드 록 실라 제 억제제에 대한 마인드 맵이며, 주요 함량은 다음을 포함한다 : 저산소증-유도 인자 프롤릴 하이드 록 실라 제 억제제 (HIF-PHI)는 신장 빈혈의 치료를위한 새로운 소형 분자 경구 약물이다. 1. HIF-PHI 복용량 선택 및 조정. Rosalasstat의 초기 용량, 2. HIF-PHI 사용 중 모니터링, 3. 부작용 및 예방 조치.
이것은 Kuka Industrial Robots의 개발 및 Kuka Industrial Robot의 모션 제어 지침에 대한 마인드 맵입니다. 주요 내용에는 쿠카 산업 로봇의 역사, 쿠카 산업 로봇의 특성, 쿠카 산업 로봇의 응용 분야, 2. 포장 프로세스에서 쿠카 로봇은 빠르고 일관된 포장 작업을 달성하고 포장 효율성을 높이며 인건비를 줄입니다. 2. 인건비 감소 : 자동화는 운영자에 대한 의존성을 줄입니다. 3. 조립 품질 향상 : 정확한 제어는 인간 오류를 줄입니다.
408 컴퓨터 네트워크가 너무 어렵습니까? 두려워하지 마세요! 나는 피를 구토하고 지식 맥락을 명확히하는 데 도움이되는 매우 실용적인 마인드 맵을 분류했습니다. 컨텐츠는 매우 완전합니다. 네트워크 아키텍처에서 응용 프로그램 계층, TCP/IP 프로토콜, 서브넷 디비전 및 기타 핵심 포인트에 이르기까지 원칙을 철저히 이해하는 데 도움이 될 수 있습니다. 📈 명확한 논리 : Mindmas 보물, 당신은 드문 기회가 있습니다. 서둘러! 이 마인드 맵을 사용하여 408 컴퓨터 네트워크의 학습 경로에서 바람과 파도를 타고 성공적으로 해변을 얻으십시오! 도움이 필요한 친구들과 공유해야합니다!
프로그램은 어떻게 실행되나요?
1. 프로그램 프로세서: CPU
레지스터, 컨트롤러, 산술 장치 및 시계의 네 부분으로 구성됩니다. 전류 신호를 사용하여 연결합니다.
레지스터: 데이터 및 지침의 임시 저장
컨트롤러: 레지스터의 데이터 및 명령 읽기를 제어합니다.
시계: 프로그램 타이밍
연산자: 레지스터에서 읽은 데이터에 대해 작동합니다.
CPU는 다양한 기능 레지스터의 집합입니다.
레지스터는 기계어만 처리할 수 있습니다.
기계어는 고급 프로그래밍 언어에서 컴파일됩니다.
레지스터 1: 프로그램 카운터
주소 명령어를 실행하여 프로그램 실행을 결정합니다.
레지스터 2: 플래그 레지스터
작업 결과 저장(양수, 음수, 0, 오버플로, 패리티)
함수 호출
이는 프로그램 카운터의 값을 함수의 저장 주소로 설정함으로써 달성됩니다.
스택을 사용하여 호출 주소와 반환 주소를 가져옵니다.
어레이 스토리지
기본 레지스터를 사용하여 배열 내용을 저장하고 인덱스 레지스터를 사용하여 배열 인덱스를 저장합니다.
2. 데이터는 바이너리로 표현됩니다.
이진 표현이 사용되는 이유: 컴퓨터 내부에서 다이오드는 통과 또는 실패라는 두 가지 상황을 나타내는 데 사용됩니다.
이진수의 가장 작은 단위는 비트(bit)이며, 이는 이진수의 비트 수를 나타냅니다.
바이너리의 기본 단위는 바이트이고, 바이트는 8비트입니다.
이진 계산
이진수와 십진수 사이의 변환 방법: 이진수 비트의 거듭제곱 결과를 더하여 십진수를 얻습니다.
컴퓨터의 십진수 연산은 계산을 위해 여전히 이진수로 변환됩니다. 예를 들어 이진수를 왼쪽으로 한 자리 이동하는 것은 숫자에 2를 곱하는 것과 같습니다.
컴퓨터 내부의 뺄셈은 덧셈을 사용하여 구현됩니다. 여기서는 "보완"을 사용합니다.
바이너리의 가장 높은 비트는 부호 비트이며, 1은 음수, 0은 양수를 나타냅니다.
음수를 표현하려면 '보수'를 사용하여 계산해야 합니다.
음수를 찾으려면 먼저 8자리 이진수를 사용하여 양수를 표현한 다음 모든 숫자의 숫자를 반전한 다음 결과에 1을 더합니다.
덧셈을 계산할 때 가장 높은 비트가 계산 범위를 초과하면 오버플로가 발생하며, 오버플로 값은 컴퓨터에 의해 자동으로 폐기됩니다.
부호 없는 유형은 모두 양수인 이진수입니다. 부호 있는 유형은 부호를 표현하기 위해 가장 높은 비트를 없애고 n-1 비트만 남기므로 양수와 음수 값이 절반을 차지합니다.
논리 오른쪽 시프트와 산술 오른쪽 시프트의 차이점
논리적 오른쪽 이동: 이미지를 오른쪽으로 이동시키는 것과 동일하며, 왼쪽의 비어 있는 위치를 0으로 직접 채웁니다.
산술적 오른쪽 시프트: 이진수를 전체적으로 오른쪽으로 이동시키고, 빈 자리를 0 또는 1로 채운다.
값이 1의 보수로 표시되는 음수 값인 경우 오른쪽으로 이동하고 비어 있는 가장 높은 비트에 1을 추가하면 1/2, 1/4, 1/8 등과 같은 수치 연산을 올바르게 구현할 수 있습니다. 양수인 경우 가장 높은 비트에 0을 추가하면 됩니다.
2진수를 16진수로 변환하여 길이를 원본의 1/4로 줄일 수 있어 더욱 간결하고 명확해졌습니다.
처음에 0x가 있는 것은 16진수 값을 나타냅니다.
3. 부동 소수점 숫자
소수를 표현하기 위해 이진수를 사용하는 경우 정확한 표현이 불가능하며 정밀도 범위의 제수만 만들 수 있습니다.
부동 소수점 숫자의 표현은 IEEE 표준입니다.
단정밀도 부동 소수점 수(32비트)
부호 부분 1, 지수 부분 8, 가수 부분 23
배정밀도 부동 소수점 수(64비트)
부호 부분 1, 지수 부분 11, 가수 부분 52
표현 방법: 정규 표현식
초과 시스템
EXCESS 시스템은 지수 부분이 나타내는 범위의 중간 값을 0으로 설정하여 음수를 부호로 표현할 필요가 없도록 동작합니다.
4.메모리
메모리에서 데이터를 읽을 수 있으며 전원 끄기 정보는 사라집니다.
데이터 신호 핀이 8개 있어 8비트와 1바이트를 표현할 수 있습니다.
10개의 주소 신호 핀이 있으며, 이는 1K인 1024개의 신호를 나타낼 수 있습니다.
같은 값이라도 데이터 유형이 다르면 메모리 크기가 달라집니다(따라서 프로그램에서 변수 유형을 정의할 때 각 레이어의 8비트를 낭비하지 않으려면 유형 위치를 최대한 컴팩트하게 조정해야 합니다). . 메모리 사용)
바늘
포인터도 변수입니다. 포인터가 나타내는 것은 데이터의 값이 아니라 데이터가 저장된 메모리의 주소입니다. 포인터를 사용하면 지정된 주소에서 데이터를 읽고 쓸 수 있습니다.
정렬
메모리의 연속된 주소에 저장됩니다. 인덱스를 사용하여 각 데이터의 주소를 나타냅니다.
스택과 큐
스택과 큐는 데이터에 접근하기 위해 인덱스를 사용하지 않지만, 내부 접근을 구현하기 위해 특정 개수의 요소로 배열 형태로 메모리 영역을 나눌 수 있습니다.
스택: 먼저 들어간 것, 마지막으로 나온 것
큐: 선입 선출(고정된 크기의 메모리에서 반복적으로 액세스할 수 있는 링 버퍼 사용)
연결리스트
추가, 삭제, 수정, 확인이 더욱 편리해질 수 있습니다.
이진 트리
검색이 쉽다
메모리를 절약하는 방법
함수의 중복 저장을 줄이기 위해 DLL 파일 공유
_stdcall을 호출하여 프로그램 파일 크기를 줄입니다.
5. 디스크
디스크에 저장된 프로그램은 실행되기 전에 메모리에 로드되어야 합니다. 프로그램 내용을 구문 분석하고 실행하는 역할을 담당하는 CPU는 프로그램을 읽기 전에 내부 프로그램 카운터를 통해 메모리 주소를 지정해야 합니다.
디스크 캐싱으로 디스크 액세스 속도 향상
가상 메모리: 실제로는 디스크 공간이지만 이 공간은 여러 페이지로 나누어져 있으며, 실행이 필요할 때 페이지의 내용을 지속적으로 메모리로 읽어옵니다.
컴퓨터는 일반적으로 디스크를 섹터로 나누어 클러스터에 저장합니다. 파일이 아무리 작더라도 클러스터를 독점적으로 차지해야 합니다.
6. 데이터 압축
파일은 바이트 단위로 저장됩니다.
RLE 압축 알고리즘
파일 내에서 반복되는 내용의 비율이 크지 않으면 파일이 늘어나는 데에는 제한이 있습니다.
허프만 알고리즘
허프만 알고리즘의 핵심은 "여러 번 나타나는 데이터는 8비트 미만의 바이트 수로 표현될 수 있고, 일반적으로 사용되지 않는 데이터는 8비트를 초과하는 바이트 수로 표현될 수 있다"는 것이다.
허프만 트리를 이용하여 각 문자의 코드를 짧은 비트에 높은 빈도로, 긴 비트에 낮은 빈도로 배열하고, 각 코드는 이진 트리의 리프 노드로 사용됩니다.
가역적 압축 및 비가역적 압축
7. 프로그램 실행 환경
운영 환경: 운영 체제 및 컴퓨터 하드웨어
소스 코드->네이티브 코드->실행
Windows는 CPU 이외의 하드웨어 차이를 극복하여 다양한 모델이 동일한 프로그램과 호환되도록 합니다.
서로 다른 CPU는 서로 다른 기계 언어를 사용합니다. 따라서 동일한 프로그램을 다른 CPU로 마이그레이션할 때 이를 해당 기본 코드로 다시 컴파일하려면 CPU별 기본 코드 컴파일러가 필요합니다.
가상 머신을 사용하여 다른 운영 체제 환경 확보
MAC용 가상 PC는 Macintosh 하드웨어를 AT 호환 컴퓨터와 동일하게 만들어 Windows를 하드웨어에 설치할 수 있도록 합니다.
자바 가상 머신
자바 가상 머신은 자바 바이트 코드를 네이티브 코드로 하나씩 변환하면서 동작한다.
바이오스
BIOS는 ROM에 저장되며 컴퓨터 호스트에 사전 내장된 프로그램입니다.
BIOS에는 키보드, 디스크, 그래픽 카드 등의 기본 제어 프로그램 외에도 "부팅 프로그램"을 시작하는 기능도 있습니다.
8. 소스파일에서 실행파일로
실행하려면 소스 코드를 네이티브 코드로 컴파일해야 합니다.
네이티브 코드의 본질은 16진수 값의 시퀀스입니다.
컴파일러는 소스 코드를 네이티브 코드로 변환하는 역할을 담당합니다.
.c 파일은 컴파일러에 의해 컴파일된 후 .obj 파일이 됩니다. 이때 프로그램은 여전히 실행될 수 없습니다.
커넥터는 여러 대상 파일을 연결하여 EXE 파일을 생성합니다. 이 프로세스를 링크 명령을 입력한 후에만 .exe 파일이 생성될 수 있습니다.
라이브러리 파일은 여러 대상 파일에서 패키지됩니다. 링크할 때 라이브러리 파일을 지정하면 링커는 라이브러리에서 필요한 개체 파일을 추출하고 이를 다른 개체 파일과 연결하여 EXE 파일을 생성할 수 있습니다.
Windows API는 프로그램 응용 프로그램 인터페이스입니다.
API의 본질은 함수입니다. API의 대상 파일은 동적 링크 라이브러리(DLL)의 라이브러리 파일입니다. (실제로 대상 파일을 저장하지 않고 대상 파일에 대한 링크만 제공하며 이를 자동으로 가져옵니다. 프로그램이 실행 중일 때 대상 파일)
대상 파일 자체를 포함하고 EXE 파일에 직접 링크할 수 있는 라이브러리 파일을 정적 링크 라이브러리라고 합니다.
실행 파일을 실행하려면 변수와 함수가 필요합니다.
EXE 파일에서 변수와 함수에 할당된 메모리 주소는 가상입니다. 프로그램이 실행되면 이러한 가상 메모리 주소가 실제 메모리 주소로 변환됩니다. 링커는 EXE 파일 시작 부분에 메모리 주소 변환이 필요한 다양한 위치를 기록합니다. 이 정보를 재배치 정보라고 합니다.
메모리 내 영역 구성 : 가변 공간, 함수 공간, 힙 공간, 스택 공간
스택은 전달해야 하는 함수 및 매개변수에 로컬 변수를 저장하는 데 사용됩니다.
스택 공간은 컴파일러에 의해 자동으로 생성되거나 해제되며 수동 작업이 필요하지 않습니다.
힙은 임의의 데이터를 저장하는 데 사용됩니다.
힙 공간에는 수동 할당 및 해제가 필요합니다(malloc 및 free)(새로 만들기 및 삭제).
9. 운영 체제
자연
프로그램을 로딩하고 실행하는 기능을 가진 모니터링 프로그램입니다.
이식성
고급 프로그래밍 언어는 소스 코드를 편집할 때 공통 언어를 사용하지만, 서로 다른 운영체제에서 네이티브 코드를 컴파일한 후 프로그램이 시스템 내에서 시스템 기능을 호출하는 것이 바로 이식성입니다.
하드웨어 추상화
운영 체제와 고급 프로그래밍 언어는 하드웨어를 추상화하므로 프로그래머는 더 이상 시스템 호출 및 하드웨어에 대해 걱정할 필요가 없습니다.
Windows 운영체제의 특징
32비트 및 64비트 버전으로 제공
API 함수 세트를 통해 시스템 호출 제공
GUI 사용
WYSIWYG 형식으로 출력을 인쇄하는 기능
멀티 태스킹 기능 제공
네트워크 및 데이터베이스 기능 제공
플러그 앤 플레이를 통한 자동 장치 드라이버 설치
10. 어셈블리 언어와 네이티브 코드
어셈블리어
어셈블리 언어는 네이티브 코드에 대한 지침인 니모닉을 사용합니다.
어셈블리 언어로 작성된 소스 코드는 실행되기 전에 기본 기계어 코드로 변환되어야 합니다.
어셈블리 언어를 네이티브 코드로 변환하는 프로그램을 어셈블러라고 하며, 변환 과정을 어셈블리라고 합니다.
모국어를 어셈블리 언어로 변환할 수도 있습니다. 변환 프로세스를 디스어셈블리라고 합니다.
C 언어 컴파일러는 C 언어 소스 코드를 어셈블리 언어 소스 코드로 변환할 수도 있습니다.
어셈블리 언어에는 두 가지 유형의 명령어가 있습니다.
1. 네이티브 코드로 변환될 일반 지침
2. 특히 어셈블러를 위한 의사 명령어
의사 명령어는 어셈블러에게 프로그램의 구조와 어셈블리 방법을 알려주는 역할을 담당하므로 어셈블러 명령어라고도 합니다.
어셈블리 언어에서 # 기호로 시작하는 주석은 다음과 같습니다.
문법
연산코드
명령의 동작을 나타냅니다.
피연산자
명령어의 연산 객체를 나타냅니다.
프로그램을 실행하면 레지스터에 스택 공간이 열립니다. 호출된 함수 변수는 프로그램이 끝난 후 이 스택을 사용합니다.
통화 기능
스택에서 매개변수를 가져와 작업을 수행하고, 반환 값을 eax 레지스터에 저장하고, 스택에서 반환 대상 주소를 가져와 프로세스가 반환되도록 합니다.
변하기 쉬운
전역 변수
함수 외부에 선언되면 프로그램의 모든 함수가 해당 함수에 접근할 수 있습니다.
지역 변수
함수 내부에 선언되면 선언된 함수 내에서만 액세스할 수 있습니다.
주기
조건부 분기
11. 하드웨어에 접근하기
프로그램은 운영 체제를 통해 하드웨어에 액세스합니다.
입력 및 출력 지침
I/O 컨트롤러 = 포트
입력 및 출력 데이터를 임시로 저장
포트 번호를 사용하여 I/O 주소를 구분합니다.
in 명령과 out 명령에 포트 번호가 지정되어 있으면 I/O 컨트롤러에 액세스하고 입력 및 출력 작업을 완료할 수 있습니다.
인터럽트 처리
현재 실행 중인 프로그램을 일시 정지하고 다른 프로그램을 실행합니다.
I/O 컨트롤러는 인터럽트 요청을 발행하고 CPU는 인터럽트 처리를 실행하며 둘 사이에서 인터럽트 컨트롤러를 사용하여 이를 CPU에 전달하여 차례로 처리합니다.
DMA
CPU에 의해 전송되지 않고 외부 장치와 메모리 사이에 데이터를 직접 전송하는 방법은 네트워크, 디스크 등의 장치에서 일반적으로 사용됩니다.
피오
CPU를 통해 외부 장치와 메모리 사이에 데이터가 전송되는 방식을 PIO라고 합니다.
문자 및 이미지 표시
비디오 메모리에 데이터를 저장하고 모니터에 표시
그래픽 카드에는 독립적인 비디오 메모리와 이미지 프로세서 GPU가 있습니다.
12. 머신러닝
개념
프로그래머는 학습을 위한 프로그램만 작성합니다. 이 프로그램의 내용은 컴퓨터가 많은 양의 데이터를 읽은 다음 이 데이터의 특성을 학습하고 인식 모델을 생성하는 것입니다.
지도 학습
지도 학습은 정답이 있는 대량의 데이터를 컴퓨터에 제공하는 것입니다.
단계
(1) 학습 데이터와 답안 데이터를 훈련 데이터와 테스트 데이터로 나눈다.
(2) 학습 알고리즘을 사용하여 훈련 데이터를 학습하고 모델을 생성합니다.
(3) 테스트 데이터를 사용하여 모델의 성능을 평가합니다.
기계 학습 알고리즘
서포트 벡터 머신
도구
파이썬 언어
다양한 머신러닝 관련 기능을 담은 라이브러리를 Python으로 제공
스크립트 모드는 Python 인터프리터를 사용하여 미리 작성된 소스 코드를 해석하고 실행합니다(스크립트 모드).
Python 인터프리터를 직접 시작하고 키보드를 통해 프로그램을 한 줄씩 입력하고 대화형 모드(interactive 모드)의 실행을 해석합니다(머신러닝에서는 이 모드를 사용함).
교차 검증
교차 검증은 훈련 데이터와 테스트 데이터를 지속적으로 순환시키는 기계 학습을 수행하는 방법입니다.
학습 데이터의 종류에 따라 학습 모델의 인식률이 편향되어 있는지 확인할 수 있습니다.