Galeria de mapas mentais Como o programa funciona
Este livro apresenta a composição de computadores, CPU, operações binárias, memória, sistemas operacionais, execução de programas, montagem, controle de hardware, aprendizado de máquina, etc. para profissionais de informática, permitindo que os leitores tenham uma compreensão profunda de como os programas passam por vários processos a partir de arquivos de origem. Running in Your Computer é um livro científico popular de leitura obrigatória para entusiastas e profissionais de informática.
Editado em 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 컴퓨터 네트워크의 학습 경로에서 바람과 파도를 타고 성공적으로 해변을 얻으십시오! 도움이 필요한 친구들과 공유해야합니다!
Como o programa é executado?
1.Processador do programa: CPU
Consiste em quatro partes: registrador, controlador, unidade aritmética e relógio. Use sinais atuais para conectar.
Cadastro: armazenamento temporário de dados e instruções
Controlador: Controla a leitura de dados e instruções no registrador
Relógio: tempo do programa
Operador: opera nos dados lidos do registrador
CPU é uma coleção de vários registros funcionais
Os registros só podem lidar com linguagem de máquina
A linguagem de máquina é compilada a partir de uma linguagem de programação de alto nível
Registro 1: Contador de Programa
Determine a execução do programa executando instruções de endereço
Registro 2: Registro de bandeira
Salvar resultados da operação (positivo, negativo, zero, estouro, paridade)
chamada de função
Isto é conseguido definindo o valor do contador do programa para o endereço de armazenamento da função.
Use a pilha para obter o endereço de chamada e o endereço de retorno
Armazenamento de matriz
Use o registrador base para armazenar o conteúdo do array e o registrador de índice para armazenar o índice do array.
2. Os dados são representados em binário
Por que a representação binária é usada: dentro do computador, diodos são usados para representar duas situações: aprovado ou reprovado.
A menor unidade de binário é o bit, que representa o número de bits em um número binário.
A unidade básica do binário é byte, um byte tem 8 bits
Cálculos binários
Método de conversão entre binário e decimal: Adicione os resultados das potências dos bits binários para obter o número decimal
A operação de números decimais no computador ainda é convertida em números binários para cálculo: por exemplo, deslocar o número binário uma posição para a esquerda equivale a multiplicar o número por 2.
A subtração dentro do computador é implementada usando adição, aqui usamos "complemento"
O bit mais alto do binário é o bit de sinal, 1 representa um número negativo, 0 representa um número positivo
Ao representar números negativos, você precisa usar “complemento” para calcular
Para encontrar um número negativo, primeiro use um número binário de 8 dígitos para representar o número positivo, depois inverta os números de todos os dígitos e adicione 1 ao resultado.
Ao calcular a adição, se o bit mais alto exceder a faixa de cálculo, ele irá estourar e o valor do estouro será automaticamente descartado pelo computador.
Tipos não assinados são números binários, todos números positivos. O tipo assinado retira o bit mais alto para representar o sinal, deixando apenas n-1 bits, portanto os valores positivos e negativos respondem pela metade.
A diferença entre deslocamento lógico para a direita e deslocamento aritmético para a direita
Deslocamento lógico para a direita: equivale a mover a imagem para a direita, preenchendo diretamente a posição vaga à esquerda com 0
Deslocamento aritmético para a direita: os dígitos binários são movidos para a direita como um todo e as posições vagas são preenchidas com 0 ou 1
Se o valor for um valor negativo representado pelo complemento, então, deslocando para a direita e adicionando 1 ao bit vago mais alto, operações numéricas como 1/2, 1/4, 1/8, etc. podem ser implementadas corretamente. Se for um número positivo, basta adicionar 0 ao bit mais alto.
Os números binários são convertidos em números hexadecimais e o comprimento pode ser reduzido para 1/4 do original, o que é mais conciso e claro
Qualquer coisa com 0x no início representa o valor hexadecimal.
3. Números de ponto flutuante
Ao usar binário para representar um decimal, é impossível obter uma representação precisa e só é possível criar um divisor com uma faixa de precisão.
A representação de números de ponto flutuante é o padrão IEEE
Número de ponto flutuante de precisão única (32 bits)
Assine a parte 1, expoente parte 8, mantissa parte 23
Número de ponto flutuante de precisão dupla (64 bits)
Assine parte 1, expoente parte 11, mantissa parte 52
Método de expressão: expressão regular
Sistema EXCESSO
O sistema EXCESS se comporta de tal forma que os números negativos não precisam ser representados por um sinal, definindo o valor médio do intervalo representado pela parte do expoente como 0.
4.Memória
Os dados podem ser lidos da memória e as informações de desligamento desaparecem.
Existem 8 pinos de sinal de dados, portanto podem representar 8 bits e 1 byte
Existem 10 pinos de sinal de endereço, que podem representar 1024 sinais, o que equivale a 1K
Diferentes tipos de dados, mesmo o mesmo valor, ocupam diferentes tamanhos de memória (portanto, para não desperdiçar os 8 bits de cada camada na hora de definir os tipos de variáveis no programa, é necessário ajustar a posição dos tipos para que fiquem o mais compactos possível . usando memória)
ponteiro
Um ponteiro também é uma variável. O que ele representa não é o valor dos dados, mas o endereço da memória onde os dados estão armazenados.
variedade
Armazenado em endereços consecutivos na memória. Use índice para indicar o endereço de cada dado.
pilhas e filas
Pilhas e filas não utilizam índices para acessar dados, mas podem dividir uma área de memória na forma de um array com um determinado número de elementos para implementar o acesso interno.
Pilha: primeiro a entrar, último a sair
Fila: primeiro a entrar, primeiro a sair (usando um buffer de anel, que pode ser acessado repetidamente em uma memória de tamanho fixo)
lista vinculada
Pode ser mais conveniente adicionar, excluir, modificar e verificar
Árvore binária
Fácil de pesquisar
Maneiras de economizar memória
Compartilhe arquivos DLL para reduzir o armazenamento duplicado de funções
Reduza o tamanho do arquivo do programa chamando _stdcall
5. Disco
Os programas armazenados no disco devem ser carregados na memória antes de serem executados. A CPU, que é responsável por analisar e executar o conteúdo do programa, precisa especificar o endereço da memória por meio do contador interno do programa antes de poder ler o programa.
O cache de disco acelera o acesso ao disco
Memória virtual: na verdade é espaço em disco, mas esse espaço é dividido em várias páginas e o conteúdo das páginas é lido continuamente na memória quando a execução é necessária.
Os computadores geralmente dividem os discos em setores e os armazenam em clusters. Não importa quão pequeno seja um arquivo, ele deve ocupar exclusivamente um cluster.
6. Compactar dados
Os arquivos são armazenados em bytes
Algoritmo de compressão RLE
Existem restrições. Se a proporção de conteúdo repetido no arquivo não for grande, o arquivo será expandido.
Algoritmo de Huffman
A chave para o algoritmo de Huffman é que "os dados que aparecem várias vezes podem ser representados por um número de bytes inferior a 8 bits, e os dados que não são comumente usados podem ser representados por um número de bytes superior a 8 bits".
Use uma árvore de Huffman para organizar os códigos de cada caractere, com alta frequência no bit curto e baixa frequência no bit longo, e cada código é usado como um nó folha da árvore binária
Compressão reversível e compressão não reversível
7. Ambiente de execução do programa
Ambiente operacional: sistema operacional e hardware do computador
Código fonte->Código nativo->Executar
O Windows supera diferenças de hardware além da CPU, permitindo que diferentes modelos sejam compatíveis com o mesmo programa
CPUs diferentes usam linguagens de máquina diferentes. Portanto, quando o mesmo programa é migrado para outras CPUs, é necessário um compilador de código nativo específico da CPU para recompilá-lo no código nativo correspondente.
Use máquinas virtuais para obter outros ambientes de sistema operacional
O Virtual PC para MAC pode tornar o hardware Macintosh igual a uma máquina compatível com AT, para que o Windows possa ser instalado no hardware
Máquina Virtual JAVA
A máquina virtual Java é executada enquanto converte o código de bytes Java, um por um, em código nativo.
BIOS
BIOS é armazenado em ROM e é um programa pré-integrado no host do computador
Além dos programas básicos de controle como teclado, disco e placa gráfica, o BIOS também tem a função de iniciar o “programa de boot”
8. Do arquivo fonte ao arquivo executável
O código-fonte precisa ser compilado em código nativo para ser executado
A essência do código nativo é uma sequência de valores hexadecimais.
O compilador é responsável por traduzir o código-fonte em código nativo
O arquivo .c se torna um arquivo .obj após ser compilado pelo compilador. Neste momento, o programa ainda não pode ser executado.
O conector une vários arquivos de destino para gerar um arquivo EXE. Esse processo é chamado de vinculação. Somente após inserir o comando de link o arquivo .exe pode ser gerado.
Os arquivos da biblioteca são empacotados a partir de vários arquivos de destino. Ao especificar um arquivo de biblioteca ao vincular, o vinculador pode extrair dele os arquivos de objeto necessários e vinculá-los a outros arquivos de objeto para gerar um arquivo EXE.
API do Windows é uma interface de aplicativo de programa
A essência da API é uma função. O arquivo de destino da API é o arquivo de biblioteca da biblioteca de vínculo dinâmico (DLL) (na verdade, ele não armazena o arquivo de destino, mas apenas fornece o link para o arquivo de destino, que é usado para obter automaticamente. o arquivo de destino quando o programa está em execução)
Um arquivo de biblioteca que contém o próprio arquivo de destino e pode ser vinculado diretamente ao arquivo EXE é chamado de biblioteca de link estático.
Variáveis e funções são necessárias para executar um arquivo executável
No arquivo EXE, os endereços de memória alocados para variáveis e funções são virtuais. Quando o programa é executado, esses endereços de memória virtual serão convertidos em endereços de memória reais. O vinculador registrará vários locais que requerem tradução de endereços de memória no início do arquivo EXE. Essas informações são chamadas de informações de realocação.
Composição de áreas na memória: espaço variável, espaço funcional, espaço heap, espaço pilha
A pilha é usada para armazenar variáveis locais em funções e parâmetros que precisam ser passados.
O espaço de pilha é gerado ou liberado automaticamente pelo compilador e não requer operação manual.
O heap é usado para armazenar dados arbitrários
O espaço heap requer alocação e liberação manual (malloc e free) (novo e exclusão)
9. Sistema operacional
Natureza
É um programa de monitoramento com função de carregar e executar programas.
portabilidade
Linguagens de programação de alto nível usam uma linguagem comum ao editar o código-fonte, mas depois de compilar o código nativo em diferentes sistemas operacionais, o programa chama funções do sistema dentro do sistema.
Abstração de hardware
Os sistemas operacionais e linguagens de programação de alto nível abstraem o hardware para que os programadores não precisem mais se preocupar com chamadas de sistema e hardware
Recursos do sistema operacional Windows
Disponível em versões de 32 e 64 bits
Fornece chamadas de sistema por meio de um conjunto de funções de API
Usando GUI
Pode imprimir a saída no formato WYSIWYG
Fornece recursos multitarefa
Fornece funções de rede e banco de dados
Instalação automática de driver de dispositivo via Plug and Play
10. Linguagem Assembly e Código Nativo
Linguagem assembly
A linguagem assembly usa mnemônicos, que são instruções para código nativo
O código-fonte escrito em linguagem assembly deve ser convertido em código de máquina nativo antes de poder ser executado.
O programa que converte a linguagem assembly em código nativo é um assembler, e o processo de conversão é chamado assembly
Você também pode converter a linguagem nativa em linguagem assembly. O processo de conversão é chamado de desmontagem.
O compilador da linguagem C também pode converter o código-fonte da linguagem C em código-fonte da linguagem assembly
Existem dois tipos de instruções em linguagem assembly
1. Instruções gerais que serão convertidas em código nativo
2. Pseudo-instruções específicas para montador
As pseudo-instruções são responsáveis por informar ao montador a estrutura do programa e o método de montagem, por isso também são chamadas de instruções do montador.
Na linguagem assembly, os comentários que começam com o sinal # são
gramática
Código de operação
Indica a ação do comando
operando
Indica o objeto de operação da instrução
Ao executar o programa, um espaço de pilha será aberto no registro. As variáveis de função chamadas usarão esta pilha. O espaço de pilha será limpo após o término do programa.
Funções de chamada
Pegue os parâmetros da pilha e execute a operação, armazene o valor de retorno no registro eax e pegue o endereço de destino de retorno da pilha e deixe o processo retornar
variável
variáveis globais
Declarado fora da função, todas as funções do programa podem acessá-lo
variáveis locais
Declarado dentro de uma função, só pode ser acessado dentro da função em que foi declarado.
ciclo
ramificação condicional
11. Acesse o hardware
Os programas acessam o hardware através do sistema operacional
Instruções de entrada e saída
Controlador de E/S = porta
Armazene temporariamente dados de entrada e saída
Use o número da porta para distinguir, ou seja, endereço de E/S
Contanto que o número da porta seja especificado no comando in e no comando out, você pode acessar o controlador de E/S e concluir as operações de entrada e saída.
Tratamento de interrupções
Pause o programa em execução atual e execute outros programas
O controlador de E/S emite uma solicitação de interrupção e a CPU executa o processamento de interrupção. O controlador de interrupção é usado entre os dois para entregá-lo à CPU para processamento.
DMA
Um método de transmissão de dados entre dispositivos externos e memória diretamente, sem serem transferidos pela CPU. É comumente usado em dispositivos como redes e discos.
PIO
A forma como os dados são transferidos entre dispositivos externos e memória através da CPU é chamada de PIO
Exibir personagens e imagens
Armazene os dados na memória de vídeo e exiba-os no monitor
A placa gráfica possui memória de vídeo independente e processador de imagem GPU
12. Aprendizado de máquina
conceito
Os programadores escrevem programas apenas para aprendizagem. O conteúdo deste programa é permitir que o computador leia uma grande quantidade de dados, depois aprenda as características desses dados e gere um modelo de reconhecimento.
aprendizagem supervisionada
A aprendizagem supervisionada consiste em fornecer ao computador uma grande quantidade de dados com respostas corretas.
etapa
(1) Divida os dados de aprendizagem e os dados de resposta em dados de treinamento e dados de teste
(2) Use algoritmos de aprendizagem para aprender dados de treinamento e gerar modelos
(3) Use dados de teste para avaliar o desempenho do modelo
Algoritmos de aprendizado de máquina
Máquinas de vetores de suporte
ferramenta
Linguagem Python
Bibliotecas contendo várias funções relacionadas ao aprendizado de máquina são fornecidas em Python
O modo script usa o interpretador Python para interpretar e executar código-fonte pré-escrito (modo script)
Inicie diretamente o interpretador Python, insira o programa linha por linha através do teclado e interprete a execução do modo interativo (modo interativo) (o aprendizado de máquina usa este modo)
Validação cruzada
A validação cruzada é um método de realizar aprendizado de máquina que alterna continuamente dados de treinamento e teste
Você pode verificar se a taxa de reconhecimento do modelo de aprendizagem é tendenciosa devido ao tipo de dados de aprendizagem.