Galeria de mapas mentais Mapa mental do sistema operacional do computador
Este é um mapa mental sobre sistemas operacionais de computador, incluindo processos e threads, gerenciamento de memória, gerenciamento de arquivos, gerenciamento de IO, etc. Espero que ajude a todos.
Editado em 2023-12-08 15:46:30A segunda unidade do Curso Obrigatório de Biologia resumiu e organizou os pontos de conhecimento, abrangendo todos os conteúdos básicos, o que é muito conveniente para todos aprenderem. Adequado para revisão e visualização de exames para melhorar a eficiência do aprendizado. Apresse-se e colete-o para aprender juntos!
Este é um mapa mental sobre Extração e corrosão de mim. O conteúdo principal inclui: Corrosão de metais, Extração de metais e a série de reatividade.
Este é um mapa mental sobre Reatividade de metais. O conteúdo principal inclui: Reações de deslocamento de metais, A série de reatividade de metais.
A segunda unidade do Curso Obrigatório de Biologia resumiu e organizou os pontos de conhecimento, abrangendo todos os conteúdos básicos, o que é muito conveniente para todos aprenderem. Adequado para revisão e visualização de exames para melhorar a eficiência do aprendizado. Apresse-se e colete-o para aprender juntos!
Este é um mapa mental sobre Extração e corrosão de mim. O conteúdo principal inclui: Corrosão de metais, Extração de metais e a série de reatividade.
Este é um mapa mental sobre Reatividade de metais. O conteúdo principal inclui: Reações de deslocamento de metais, A série de reatividade de metais.
sistema operacional
Visão Geral do Capítulo 1
conceito básico
Uma coleção de programas que controla e gerencia os recursos de hardware e software de todo o sistema de computador, organiza e agenda racionalmente o trabalho do computador e a alocação de recursos e fornece aos usuários interfaces e ambientes convenientes.
recurso
simultâneo
Vários eventos ocorrem no mesmo intervalo de tempo
Diferente de paralelo Paralelismo é paralelismo ao mesmo tempo
compartilhado
compartilhamento mutuamente exclusivo
Apenas um processo tem permissão para acessar recursos dentro de um tempo especificado
Somente depois que o processo tiver acessado e liberado o recurso outro processo poderá acessá-lo.
recursos críticos
Apenas um processo tem acesso permitido por um período de tempo
Tais como: dispositivos físicos, pilhas, variáveis, tabelas, etc.
Visite simultaneamente
Permitir acesso "simultâneo" por vários processos durante um período de tempo
Ao mesmo tempo, macroscopicamente, Num nível micro, eles podem acessar recursos alternadamente (compartilhamento de tempo)
O compartilhamento de recursos está condicionado à simultaneidade do programa. Se a simultaneidade do programa não for permitida, não haverá compartilhamento de recursos.
Duas características básicas
virtual
Entidades tornam-se contrapartes lógicas
Execução simultânea via multiprogramação
Use tecnologia de multiprogramação para dividir uma CPU física em múltiplas CPUs lógicas
tecnologia virtual
tecnologia de multiplexação por divisão de tempo
compartilhamento de tempo
tecnologia de multiplexação por divisão espacial
armazenamento virtual
assíncrono
A execução do processo não é feita em uma única etapa, mas de forma intermitente porque os recursos são limitados.
O sistema operacional serve como interface entre o usuário e o sistema de hardware do computador
Como os usuários usam os computadores
1) Interface de comando
via interpretador de comandos
O analisador de comando shell também é uma interface de comando
Interface de comando on-line
Adequado para sistemas de compartilhamento de tempo e tempo real
Ênfase na interatividade do usuário
Interface de comando off-line
Nenhuma operação manual necessária
para sistemas de processamento em lote
Juntamente com os trabalhos pré-preparados, eles são entregues ao sistema. Quando os trabalhos são agendados, o interpretador de comandos do sistema controla a execução.
2) Interface do programa
Consiste em chamadas de sistema
Use chamadas de sistema para solicitar que o sistema operacional forneça serviços para ele
O sistema operacional não fornece chamadas de sistema para o cache do sistema e o cache é transparente para o usuário.
caminho de desenvolvimento
1) Estágio de operação manual
Não há sistema operacional no momento e todo o trabalho é feito manualmente
2) Estágio de processamento em lote
Sistema de processamento em lote de pista única
1) Sequencialidade
2) Automaticidade
3) Unidirecionalidade
Apenas um programa é executado na memória
Sistema de processamento em lote multicanal
através de técnicas de multiprogramação
Vários programas entram na memória ao mesmo tempo e são executados alternadamente na CPU.
Hardware/software compartilhado
Quando um programa é suspenso devido a IO, a CPU executa imediatamente outro programa.
via interrupção
vantagem
1) Vários canais
2) Macro-paralelismo
3) Microssérie
4) Alta taxa de utilização e grande rendimento
Desvantagens: Longo tempo de resposta, sem interação humana, sem controle sobre o computador
3) Sistema operacional de compartilhamento de tempo
Vários usuários compartilham um host simultaneamente através do terminal
Através da rotação do intervalo de tempo
Realize a interação humano-computador
1) Simultaneidade
2) Interatividade
3) Independência
Vários usuários operam de forma independente, sem interferir uns com os outros
4) Oportunidade
Obtenha resposta em pouco tempo
4) Sistema operacional em tempo real
Conclua tarefas urgentes (tarefas preventivas de alta prioridade) dentro de um determinado limite de tempo, Não há necessidade de filas de intervalo de tempo
5) Sistema operacional de rede e sistema de computador distribuído
sistema operacional de rede
Cada computador está organicamente integrado
sistema de computador distribuído
Todo computador tem status igual
6) Sistema operacional de computador pessoal
vencer, Linux, Mac OS
Ambiente operacional
Modo de operação do processador
1) Instruções privilegiadas
Diretivas que os usuários não estão autorizados a usar
Instrução IO, definir instrução de interrupção, enviar palavra de status, salvar registro, definir relógio
Só pode ser executado no modo kernel
2) Instruções não privilegiadas
Diretivas que permitem aos usuários usar
Sem acesso direto aos recursos de hardware e software do sistema
Permitir acesso apenas ao espaço de endereço do usuário
chamada de sistema
As instruções trap, também conhecidas como instruções de gerenciamento de acesso, são usadas para iniciar chamadas do sistema e solicitar que o sistema forneça serviços.
É usado no modo de usuário. Portanto, não é uma instrução privilegiada
O programa é executado em modo de usuário
Programas kernel são executados no modo kernel
A instrução para mudar para o modo de usuário é uma instrução privilegiada
O aplicativo solicita serviços do sistema operacional por meio de instruções de gerenciamento de acesso, gera um evento de interrupção e converte o sistema operacional em modo kernel.
O processo de execução de instruções generalizadas (comandos de chamada do sistema) deve estar no estado kernel. E sua chamada pode ser em modo de usuário ou modo kernel.
A mudança do modo de usuário para o modo kernel deve passar por uma interrupção
Enquanto ocorrer uma interrupção, ela inevitavelmente mudará para o estado do kernel.
chamada de sub-rotina
Salvar apenas pontos de interrupção
Próximo endereço de instrução
Modo de usuário → modo principal
exemplo
Solicitar serviços do sistema
A interrupção ocorre
Erro no programa do usuário
O programa do usuário deseja executar instruções privilegiadas
A conversão do modo de usuário para o modo principal é concluída pelo hardware
Deve ser alcançado através de interrupções
Enquanto ocorrer uma interrupção, ela deverá ser processada e convertida para o estado do kernel.
Quando o estado do usuário entra no estado central, não apenas o estado é alterado, mas a pilha também é convertida na pilha do sistema.
gerenciamento de relógio
Implemente a comutação de processos por meio do gerenciamento de interrupções de clock
interrupção do relógio
Processar informações relacionadas ao tempo para decidir se o agendador deve ser executado
Hora do sistema, intervalo de tempo, atraso, tempo de uso da CPU, cronômetro, etc.
Interrupções e exceções
interromper (interrupção externa)
O sistema operacional não pode operar sem interrupções
Apenas uma pequena parte da função pertence ao kernel, protegendo e restaurando informações da cena de interrupção, Transferir o controle para o manipulador relevante
dados salvos
Economia de hardware
computador
Palavra de status PSW
salvar sistema operacional
registro geralx
anormal (interrupção interna)
Código de operação ilegal, endereço fora dos limites, overflow, falha de página, auto-trap, etc.
Chamada do sistema, comando de acesso
As exceções não podem ser mascaradas e devem ser tratadas imediatamente assim que ocorrerem.
primitivo
é um procedimento
1) Na parte inferior do sistema operacional
2) O programa roda atomicamente
3) O programa tem curta duração e chamadas frequentes
4) Componentes do kernel
estilo de gestão
Gerenciamento de dispositivo
Gerenciamento de processos
gerenciamento de memória
estrutura do sistema operacional
abordagem em camadas
É difícil definir cada camada
Modular
Interfaces entre módulos são difíceis de atender às necessidades reais
núcleo de macro
Todos os principais módulos funcionais são executados no estado do kernel como um todo intimamente relacionado.
vencer, Linux, iOS, andróide
micronúcleo
As funções principais são retidas no kernel, e as funções que não precisam ser executadas no modo kernel são transferidas para o modo de usuário.
O serviço de arquivo é executado no modo de usuário
A principal desvantagem são problemas de desempenho
SO Hongmeng
Inicialização do sistema operacional
Ativar CPU
Execute a instrução JMP para ir para o BIOS
Registre o endereço de entrada do programa de interrupção do BIOS
Autoteste de hardware
Carregue o disco rígido com o sistema operacional
Carregue o MBR do registro mestre de inicialização
MBR contém tabela de partição de hardware
O MBR verifica a tabela de partições para encontrar a partição ativa e transfere o programa de inicialização da partição para a memória para execução.
Digitalize a partição do disco rígido
Carregar registro de inicialização PBR (Registro de inicialização de partição)
Encontre e ative o programa no diretório raiz da partição usada para inicializar o sistema operacional
Carregar gerenciador de inicialização
Localizado no disco rígido e usado para inicializar o sistema operacional
Carregar sistema operacional
máquina virtual
Capítulo 2 Processos e Threads
Processos e Threads
conceito
Bloco de controle de processo PCB
Permitir que cada programa (incluindo dados) participante da execução simultânea seja executado de forma independente
PCB é o único sinal da existência do processo
Entidade de Processo (Imagem)
Consiste em três partes: segmento de programa, segmento de dados relevante e PCB
Um processo é o processo em execução de uma entidade de processo
É uma unidade independente para alocação e agendamento de recursos no sistema.
recurso
é causado pela execução simultânea de vários programas
Dinâmico
Simultaneidade
independência
Assincronicidade
Status e transições do processo
Estado de execução→Estado de bloqueio
Proteja a cena
Composição do processo
PCB
Seção do programa
Segmentos de código do programa que podem ser agendados pelo processo para serem executados pela CPU
segmento de dados
controle do processo
Os programas usados para controle de processos são chamados de primitivos
Cada processo pai e filho tem seu próprio PCB
O processo pai e o processo filho compartilham alguns recursos, mas não compartilham o espaço de endereço virtual
processo encerrado
evento
Termine normalmente
fim anormal
intervenção externa
processo
Recuperar PCB, ler status
Encerrar operação
Dê recursos para outros processos
ou retornado ao sistema operacional
Mate todos os processos filhos
Remover PCB
comunicação de processo
Troca de informações entre processos
comunicação de baixo nível
Operação fotovoltaica
não pode ser interrompido
comunicações avançadas
armazenamento compartilhado
Threads dentro de um processo compartilham naturalmente o espaço do processo O espaço do processo é compartilhado entre processos por meio de chamadas de sistema especiais.
Mensagens
A troca de dados ocorre em mensagens formatadas
comunicação direta
método de comunicação indireta
A entidade intermediária é a caixa de correio
comunicação de tubulação
Os dados são os primeiros a entrar, os primeiros a sair no pipeline
O arquivo de pipe existe na memória
Se os dados forem lidos vazios, o processo de leitura bloqueia
Pipes só podem ser acessados pelo processo de criação
Tubos comuns permitem apenas comunicação unidirecional
Threads e multithreading
É uma unidade básica de execução da CPU
É a menor unidade do fluxo de execução do programa
O bloco de controle de thread TCB consiste em
ID do tópico
contador de programa
conjunto de registros
Composição da pilha
Área de armazenamento específica do thread
No mesmo processo, vários threads podem ser executados simultaneamente
Depois de introduzir tópicos
O processo serve como unidade de alocação de recursos do sistema fora da CPU.
Threads como unidades de alocação do processador
Processo é a unidade básica que possui recursos no sistema. Threads não possuem recursos do sistema.
Implementação de thread
Classificação
thread em nível de usuário
Todo o trabalho é feito pelo aplicativo no espaço do usuário
A troca de threads não requer espaço no kernel e tem baixa sobrecarga
Escolha diferentes algoritmos de agendamento conforme necessário
Se um thread de nível de usuário for bloqueado, todo o processo também será bloqueado.
Threads de nível de kernel
Concluído com suporte ao sistema operacional
A troca de threads no mesmo processo requer a mudança do modo de usuário para o modo kernel, o que é caro
Vários threads do mesmo processo podem ser programados para serem executados em paralelo na CPU ao mesmo tempo
modelo multithread
muitos para um
Vários usuários mapeados para um núcleo
Um a um
muitos para muitos
Agendamento do processador
Conceito de agendamento
Selecione um processo da fila de prontos de acordo com um determinado algoritmo e atribua o processador a ele
Trabalhos e processos
Os trabalhos são enviados pelos usuários e baseiam-se nas tarefas do usuário. O processo é gerado pelo sistema operacional e é a unidade básica para alocação de recursos e operação independente.
Hierarquia de agendamento
Agendamento avançado
agendamento de trabalho
O agendamento de tarefas é o agendamento entre memória e armazenamento auxiliar
Cada trabalho é carregado apenas uma vez e carregado uma vez
Agendamento Intermediário
agendamento de memória
Chamada e chamada do programa
Melhore a utilização da memória e o rendimento do sistema
Os processos que não estão em execução temporariamente são agendados para a memória externa e suspensos.
agendamento de baixo nível
agendamento de processos
A frequência de agendamento do processo é alta
O mais básico e indispensável
Desempenho
Utilização da CPU
Tempo efetivo de trabalho da CPU / (espera efetiva)
Tempo de resposta
Tempo de resposta = tempo de conclusão do trabalho – tempo de envio do trabalho
Tempo médio de resposta = ∑tempo de resposta / n
Tempo de resposta ponderado = tempo de resposta do trabalho/tempo real de execução do trabalho
Tempo médio de resposta ponderado = ∑tempo de resposta ponderado / n
tempo de espera
Tempo de resposta
Agendamento de implementação
Agendador
fila
Expedidor
alternador de contexto
Execute um grande número de instruções de carregamento/armazenamento e salve o conteúdo do registro
Agendamento de tempo, comutação e processos
Situações em que o agendamento e a comutação não podem ser realizados
1) Durante o processo de tratamento de interrupções
2) O processo está na seção crítica do kernel do sistema
Depois de entrar na seção crítica, bloqueie-a, Os processos não devem ser alterados antes do desbloqueio
3) Durante o processo atômico
Durante processos atômicos, até as interrupções são mascaradas
Situações que podem ser agendadas e trocadas
agendamento sem privação
Ocorre uma condição de agendamento e o processo atual não pode continuar.
agendamento de privação
O processamento de interrupção termina
A armadilha termina
Método de agendamento
Não preemptivo
Deixe o processo atual continuar mesmo que um processo de emergência esteja pronto
Preemptivo
Eventos de emergência têm maior prioridade
Processo de sair
Quando não houver outros processos em execução no sistema, ative ocioso
Agendamento de dois threads
nível de usuário
Troca de thread dentro do mesmo processo, usando um pequeno número de instruções de máquina
nível do kernel
O kernel seleciona um thread específico para ser executado e atribui a ele um intervalo de tempo
Algoritmo de Agendamento
Primeiro a chegar, primeiro a ser servido
algoritmo inalienável
O algoritmo é simples e de baixa eficiência
Propício para operações ocupadas de CPU Não é propício para operações de IO ocupadas
Trabalhos curtos primeiro
Trabalhos com o menor tempo de execução têm precedência
Não é bom para trabalhos longos
Falha em considerar totalmente a urgência do trabalho
Tempo médio de espera, menor tempo médio de resposta
agendamento prioritário
Executar de acordo com a prioridade do trabalho
Pode ser usado tanto para agendamento de processos quanto para agendamento de tarefas
prioridade
prioridade estática
Uma vez decidido, não pode ser alterado
prioridade dinâmica
A prioridade pode ser ajustada de acordo com a situação
em princípio
1) Processo do sistema > Processo do usuário
2) Processo interativo > processo não interativo
3) Processo IO > Processo de computação
Porque o dispositivo IO é mais lento que a CPU
Prioridade de alta taxa de resposta
Taxa de resposta = (tempo de espera, tempo de serviço necessário) / tempo de serviço necessário
rotação do intervalo de tempo
para sistemas de compartilhamento de tempo
Se o intervalo de tempo for grande o suficiente para que todos os trabalhos possam ser executados dentro de um intervalo de tempo, O algoritmo de rotação do intervalo de tempo degenera em primeiro a chegar, primeiro a ser servido
fila multinível
Processos de diferentes tipos ou propriedades são atribuídos a diferentes filas prontas
Fila de feedback multinível
Várias filas prontas, cada uma com prioridades diferentes
O tamanho da fatia de tempo de processo de cada fila é diferente
Cada fila é atendida por ordem de chegada
As filas são agendadas por prioridade
Comparar
Troca de processo
mudança de contexto
Contexto refere-se a: o conteúdo dos registros da CPU e do contador do programa em um determinado momento
A CPU muda para outro processo e precisa salvar o estado do processo atual e restaurar o estado do outro processo.
Atualizar PCB
Mudança de modo
Alternando entre o modo de usuário e o modo kernel
Sincronização e exclusão mútua
conceito
recursos críticos
Apenas um processo pode usá-lo por vez
Como impressora, variável, dados
Área de entrada
Verifique se a seção crítica pode ser inserida
seção Crítica
O código no processo que acessa recursos críticos
Área de saída
Limpe o sinalizador de que a seção crítica está sendo acessada
área restante
o resto do código
Sincronização de processos
relação restritiva direta
A relação entre processos é de colaboração direta e a simultaneidade de processos é assíncrona.
Mutualmente exclusivo
restrições indiretas
Quando um processo acessa um recurso crítico, outro processo deve esperar
critério
Livre para deixar entrar
Se você estiver ocupado, espere
espera limitada
Garantido para entrar na seção crítica dentro de um tempo limitado
ceda e espere
Quando o processo não consegue entrar na seção crítica, o processador é imediatamente liberado para evitar que o processo fique ocupado aguardando.
métodos mutuamente exclusivos
Método de implementação de software
método de marca única
Verifique primeiro o método de marca dupla
Método de marca dupla pós-inspeção
algoritmo de peterson
Para evitar que dois processos entrem na seção crítica e esperem indefinidamente, a variável turn é definida
Método de implementação de hardware
Método de mascaramento de interrupção
Método de comando de hardware
teste e conjunto
trocar
Vantagens dos métodos de implementação de hardware
Funciona com qualquer número de processos
deficiência
Pode ocorrer fome
bloqueio mutex
adquirir
obter bloqueio
liberar
liberar bloqueio
sinal
A operação fotovoltaica é na verdade composta por dois processos ininterruptos
A operação p é a operação de espera, o que significa esperar até que o recurso esteja disponível. Se o recurso estiver indisponível, ele entra no estado de bloqueio. O processo durante a operação p está em estado de execução
V operação é uma operação única, o que significa que o processo libera um recurso de forma que a quantidade de recursos disponíveis para alocação no sistema seja 1
semáforo inteiro
gravar semáforo
Usando semáforos para obter sincronização de processos
Usando semáforos para implementar exclusão mútua de processos
O valor inicial do mutex é geralmente 1, o que significa que apenas um processo pode entrar na seção crítica por vez. Quando for 0, significa que um processo entrou na seção crítica e não há nenhum processo aguardando fora da seção crítica. Quando o mutex é menor que 0, significa que há um processo na seção crítica. O valor absoluto do mutex indica o número de processos aguardando fora da seção crítica.
Usando semáforo para implementar precursor
gerenciamento
Ferramenta de sincronização de processos
Exclusão mútua garantida do processo
Capaz de alcançar sincronização e exclusão mútua entre processos
Apenas um processo usa um recurso compartilhado por vez
Uma estrutura de dados que representa um recurso compartilhado e um programa de gerenciamento de recursos que consiste em um conjunto de procedimentos que operam nessa estrutura de dados compartilhada em tempo real.
O sinal é diferente da operação V. Se não houver nenhum processo bloqueado devido à condição, o sinal não terá efeito.
Problemas de sincronização
problema produtor-consumidor
problema leitor-escritor
leia primeiro
Escreva primeiro
O problema gastronômico dos filósofos
Possíveis problemas: quando todos pegam os pauzinhos (algoritmo ganancioso), pode ocorrer um impasse.
problema do fumante
impasse
definição
Deadlock causado por vários processos competindo por um recurso
Esses processos não podem continuar sem forças externas
causa
1) Competição por recursos do sistema
Recursos inalienáveis no sistema, a quantidade não é suficiente para satisfazer múltiplos processos
2) A sequência de avanço do processo é ilegal
Ordem inadequada de solicitação e liberação de recursos
Condições necessárias para que ocorra o impasse
1) Condições mutuamente exclusivas
Um determinado recurso é ocupado apenas por um processo durante um determinado período de tempo
2) Sem privação de condições
não pode ser preemptado por outros processos
3) Condições de solicitação e retenção
O processo ocupou um recurso e solicitou outro recurso ao mesmo tempo, e o recurso ocupado não foi liberado.
4) Esperando em loop
Os recursos ocupados por cada processo são solicitados simultaneamente pelo próximo processo
Estratégia de tratamento de impasse
1) Prevenção de deadlock
Destrua uma ou mais das quatro condições necessárias
1. Destruição das condições de exclusão mútua
Permitir compartilhamento de recursos do sistema
2. Destruir as condições de não privação
Liberar processos que estão ocupando recursos e não podem continuar a ser executados
3. Destrua a solicitação e mantenha a condição
Solicite todos os recursos necessários de uma só vez e não o coloque em operação antes que seus recursos sejam atendidos.
4. Quebre o ciclo e espere
Adote método sequencial de alocação de recursos
2) Evitar impasses
Impedir que o sistema entre em um estado inseguro
1. Status de segurança do sistema
Antes de o sistema alocar recursos, ele deve primeiro calcular a segurança da alocação.
estado seguro
Não deve haver nenhum impasse
estado não seguro
Pode entrar em impasse
2. Algoritmo do Banqueiro
Impedir que o sistema entre em um estado inseguro
3) Detecção e liberação de deadlock
Detecte a ocorrência de impasse e tome algumas medidas para aliviá-lo
Se o sistema não tomar nenhuma medida ao alocar recursos ao processo, deverão ser fornecidos métodos de detecção e liberação de deadlock.
Mapa de alocação de recursos
Os círculos na caixa representam recursos
Borda de solicitação direcionada do processo para o recurso
liberação de impasse
1) Privação de recursos
O processo que trava o impasse irá aproveitar seus recursos e alocá-los para outros processos em impasse.
2) Desfaça o processo
Cancelar à força alguns ou mesmo todos os processos em impasse e privá-los de recursos
3) Reversão de processo
Deixe um processo em impasse reverter o suficiente para evitar o impasse
Comparar
A diferença entre impasse e fome
fome
A execução de um processo é adiada indefinidamente
Só pode haver um processo que entra em estado de fome
Pode estar pronto ou bloqueado.
impasse
O processo chegou a um impasse e não pode avançar.
O número de processos que entram em um deadlock deve ser igual ou superior a dois
O processo no qual ocorre o deadlock deve estar em estado bloqueado
Capítulo 3 Gerenciamento de Memória
conceito
O gerenciamento de memória serve para melhor suportar a execução simultânea de multiprogramas
Vinculação e carregamento do programa
Link
link estático
A função da biblioteca é vinculada a um módulo de carregamento e o endereço relativo é modificado.
Vinculação dinâmica no carregamento
Ao carregar na memória, vincule durante o carregamento
Vinculação dinâmica em tempo de execução
Módulos de objetos que não são usados durante a execução não serão carregados na memória ou vinculados a módulos.
carregar
Absolutamente monte (estático)
em fase de programação
Adequado para programa único, endereço lógico e endereço de memória são exatamente iguais
Pode ser fornecido pelo programador ou por compilação ou montagem.
carga relocável
realocação estática
O processo de modificação das instruções e endereços de dados no programa de destino durante o carregamento é chamado de relocação.
Não altere após carregar
Ao carregar, modifique o endereço lógico para o endereço físico final
Carregamento de tempo de execução dinâmico
realocação dinâmica
Depois que o carregador carrega o módulo na memória, ele não converte imediatamente o endereço relativo do módulo carregado em um endereço absoluto, mas adia o processo de conversão até a execução.
Pode ser trocado após o carregamento
Os endereços após serem carregados na memória são todos endereços relativos.
proteção de memória
Adicione o endereço lógico ao valor de realocação para obter o endereço físico
O registro de endereço de limite determina se está fora dos limites
O carregamento do registro de relocação e do registro de endereço de limite deve usar instruções privilegiadas, que são concluídas pelo kernel do sistema operacional e não podem ser modificadas pelo usuário.
compartilhamento de memória
Somente áreas somente leitura podem ser compartilhadas
O código reentrante (código puro) permite acesso por múltiplos processos, mas não permite modificação por nenhum processo
A tecnologia reentrante reduz as transferências de entrada e saída de código, reduzindo o número de trocas para melhorar o desempenho do sistema.
Cubra e troque
cobrir
Os segmentos do programa a serem acessados são colocados na área de cobertura e outros segmentos são colocados na memória externa. O sistema precisa transferi-los para a área de cobertura antes de chamar e substituir os segmentos originais.
intercâmbio
Transferir o programa em espera da memória para o armazenamento auxiliar, que é um agendamento intermediário
gerenciamento de alocação contínua
alocação única contígua
A área do sistema é usada pelo sistema operacional e é colocada na parte de baixo endereço.
Na memória da área do usuário existe apenas um programa do usuário
Use tecnologia de sobreposição
Gerenciamento de partição
A solução de gerenciamento de armazenamento mais simples que satisfaz a multiprogramação com o menor custo
Alocação de partição fixa
A memória do usuário é dividida em diversas áreas de tamanho fixo e cada partição carrega apenas um trabalho.
pergunta
1) O programa é muito grande para caber em qualquer partição, então use a tecnologia de substituição
2) Se o programa for muito pequeno e colocado na partição, ocorrerá fragmentação interna
Alocação de partição dinâmica
Com o tempo, muitos pequenos blocos de memória são criados na memória, chamados de fragmentação externa
Resolvido por tecnologia compacta, sistema operacional movimenta e organiza processos
estratégia de alocação
algoritmo de primeiro ajuste
Link em ordem crescente de endereço
Algoritmo de adaptação de vizinho
Ao alocar memória, a pesquisa começa na posição onde terminou a última pesquisa.
algoritmo de melhor ajuste
As partições livres formam uma cadeia de partições livres em ordem crescente de capacidade.
Gera a maior parte dos detritos externos
algoritmo de pior ajuste
Forme uma cadeia de partição livre em ordem decrescente de capacidade
Recuperar memória
Mesclando áreas livres por meio de tecnologia de emenda
1) A área de recuperação é adjacente à partição livre anterior do ponto de inserção
Mesclar duas partições e modificar o tamanho da entrada anterior da tabela de partições para a soma das duas
2) A área de recuperação é adjacente à partição livre após o ponto de inserção
O tamanho da entrada da tabela de partição modificada é a soma dos dois
3) A área de recuperação é adjacente às duas partições antes e depois do ponto de inserção
Modifique o tamanho da entrada anterior da tabela de partição para a soma dos três
Cancelar a próxima entrada da tabela de partições
4) A área de reciclagem não possui divisórias livres adjacentes
Crie uma nova entrada de tabela para a área de reciclagem, preencha o endereço inicial, tamanho e insira a cadeia de partição livre
O espaço de endereço físico fornecido pelo sistema ao usuário é o tamanho total do espaço menos o comprimento da tabela de páginas ou tabela de segmentos.
Gerenciamento de paginação
O gerenciamento de paginação produz fragmentação interna, mas não produz fragmentação externa
Um bloco em um processo é chamado de página e um bloco na memória é chamado de quadro de página.
A estrutura de endereço determina o tamanho do espaço de endereçamento da memória virtual
O sistema cria uma tabela de páginas para cada processo e a tabela de páginas é armazenada na memória.
O endereço inicial da tabela de páginas é colocado no registro de endereço base da tabela de páginas
Depois que o tamanho da página for determinado, todas as páginas terão o mesmo tamanho (potência de 2)
Autoridade de Tradução de Endereços
Gestão de segmentação
gerar fragmentação externa
Contínuo dentro de um segmento, mas não é necessário que seja contínuo entre segmentos
Segmentação é quando os usuários programam, o programa é dividido em vários segmentos lógicos de acordo com a lógica.
relacionado à estrutura lógica
Vinculação dinâmica que facilita programas
Gerenciamento de páginas de segmento
gerar fragmentação interna
O sistema cria uma tabela de segmentos para o processo e cada segmento possui uma tabela de páginas.
Abordagem segmentada para gerenciar e alocar espaço de endereço de usuário Método de paginação para gerenciar e alocar espaço de endereço físico
Na verdade, um acesso requer três acessos à memória principal.
gerenciamento de memória virtual
recurso
várias vezes
O trabalho é dividido em vários momentos e carregado na memória.
intercambiabilidade
Recuperar programas e dados não utilizados da memória
virtualidade
Expanda logicamente a capacidade de memória
Capacidade real da memória virtual ≤ capacidade de memória capacidade de armazenamento externo
A capacidade máxima da memória virtual ≤ a capacidade máxima que os bits de endereço do computador podem acomodar
Implementação
1) Solicitar gerenciamento de paginação
Requer suporte de hardware
Memória, memória externa, mecanismo de interrupção, conversão de endereço, etc.
Mecanismo de tabela de páginas
Número da página, número do bloco físico, bit de status, campo de acesso, bit de modificação, endereço de memória externa
Mecanismo de interrupção de falha de página
Quando a página acessada não está na memória, uma interrupção de falha de página é gerada e o sistema é solicitado a transferi-la para a memória.
A taxa de falhas de página é afetada pelo tamanho da página, pelo número de blocos físicos alocados, pelo algoritmo de substituição e pela programação.
Autoridade de Tradução de Endereços
Alocação de quadro de página
conjunto residente
Uma coleção de frames de página alocados para um processo
Quanto menos quadros de página forem alocados para um processo, mais processos residirão na memória principal, melhorando a utilização da CPU.
Um processo possui poucas páginas na memória principal e a taxa de falta de página é relativamente alta.
Estratégia de alocação de memória
1) Alocação fixa de reposição local
Aloque um certo número de blocos físicos para o processo Após ocorrer uma falha de página, selecione uma página da memória alocada para o processo e chame-a.
2) Substituição global de alocação variável
Aloque um certo número de blocos físicos, que podem ser aumentados ou diminuídos adequadamente Substituição global: selecione um bloco dos blocos físicos livres e atribua-o ao processo e transfira a página ausente
3) Substituição local de substituição variável
Quando uma página está faltando, apenas este processo pode selecionar uma página das páginas de memória e recuperá-la.
Algoritmo de carregamento de bloco físico
estratégia de alocação fixa
1) Algoritmo de distribuição média
2) Distribuir proporcionalmente
Alocar proporcionalmente de acordo com o tamanho do processo
3) Alocação prioritária
Alocação com base na urgência
Hora de carregar a página
Carregar antes de executar
Chamado durante o tempo de execução
algoritmo de substituição
1) Melhor algoritmo de substituição
Elimine páginas que nunca serão usadas ou páginas que não são usadas há muito tempo
2) Algoritmo primeiro a entrar, primeiro a sair
A anormalidade de Belady ocorrerá
O número de blocos físicos alocados aumenta e o número de falhas de página aumenta em vez de diminuir.
3) Não usado recentemente e há muito tempo
Requer suporte de hardware para registros e pilhas
Por precisar calcular páginas que não foram visitadas recentemente, é caro.
4) Algoritmo de relógio
5) Algoritmo de relógio aprimorado
Adicionado bit de modificação
Priorize páginas que não foram usadas ou modificadas
Julgamento baseado no bit de acesso A e no bit de modificação M
Jitter e conjunto de trabalho
Tremor
A página que acabou de ser trocada será trocada novamente imediatamente (as páginas são frequentemente trocadas).
Alta taxa de falhas de página
razão
Existem muitos processos em execução simultaneamente no sistema e poucos blocos físicos alocados para cada processo.
Conjunto de trabalho
Uma coleção de páginas que um processo acessará dentro de um determinado período de tempo
Evitar tremores
2) Solicitar gerenciamento de segmento
3) Solicitar gerenciamento de página de segmento
Capítulo 4 Gerenciamento de Documentos
propriedades do arquivo
nome
tipo
O Criador
proprietário
Localização
tamanho
Proteger
tempo
Arquivo é um tipo de dados abstrato, estrutura de dados
Bloco de controle de arquivo FCB
entrada de diretório de arquivo
Estrutura de dados que armazena diversas informações exigidas pelo arquivo de controle
Acesso por nome
Contém: informações básicas, informações de controle de acesso, informações de uso
nó de índice inode
Diretório de arquivos no disco
nó de índice de disco
Cada arquivo possui um nó de índice de disco exclusivo
Identificador primário, tipo, permissões, endereço físico, comprimento, contagem de links, tempo de acesso
nó de índice de memória
Nós de índice armazenados na memória
Quando o arquivo é aberto, o nó de índice do disco é copiado para o nó de índice de memória.
Número do nó, status, contagem de acessos, número do dispositivo lógico, ponteiro do link
Operações de arquivo
aberto e fechado
Abrir
Chame open para pesquisar o diretório com base no nome do arquivo, copie os atributos do arquivo especificado (incluindo a localização física) do armazenamento externo para a entrada da tabela de arquivos abertos na memória e retorne o número da entrada ao usuário
Armazene FCB na tabela de diretórios de arquivos de memória
fecho
Chame close, o sistema abrirá a tabela de arquivos para excluir esta entrada
Durante a chamada de leitura, se o arquivo não estiver na memória, o processo entra em suspensão.
Proteção de arquivos
Proteção de senha
A senha está armazenada dentro do sistema e não é segura o suficiente.
Proteção de criptografia
Evite que arquivos sejam roubados
Controle de acesso
Controle como os usuários acessam os arquivos
A estrutura lógica do arquivo
Arquivos não estruturados (arquivos de streaming)
Organizado sequencialmente em registros (coleções ordenadas)
Existem arquivos estruturados (arquivos gravados)
arquivo de sequência
estrutura de string
Ordenado por horário de depósito
estrutura sequencial
Classificar por palavra-chave
arquivo de índice
arquivo de registro de comprimento fixo
arquivo de registro de comprimento variável
pesquisa sequencial
arquivo de sequência de índice
N registros são divididos em √N grupos. Existem √N entradas na tabela de índice e um total de √N/2 √N/2 pesquisas são necessárias.
arquivo direto/arquivo hash
Dado o valor-chave do registro ou o valor-chave transformado pela função hash, o endereço físico do registro é determinado.
A estrutura física do arquivo
Alocação
alocação contínua
Suporta acesso sequencial/acesso aleatório
Velocidade de acesso rápida
Excluir arquivos repetidamente cria fragmentação externa
Inconveniente para adicionar, excluir ou modificar
O campo de endereço físico do arquivo na entrada do diretório do arquivo inclui o endereço do primeiro bloco e o comprimento da área de alocação do arquivo.
Atribuição de link
Método de alocação discreto
Detritos externos eliminados
Inconveniente para verificar
ligação implícita
Adequado apenas para acesso sequencial
O diretório contém um ponteiro para o primeiro bloco do arquivo e um ponteiro para o último bloco
gerar fragmentação interna
link explícito
Uma tabela de links que armazena explicitamente ponteiros de links na memória é chamada de tabela de alocação de arquivos (FAT). Cada entrada armazena o próximo número do bloco de disco
Existe apenas um FAT em todo o disco e também é uma estrutura de dados.
As entradas FAT correspondem individualmente aos blocos do disco físico. O número especial -1 pode ser usado para representar o último bloco, e outros números podem ser usados para indicar que o bloco do disco está livre não apenas para registrar o relacionamento do link. cada bloco, mas também marca a parte livre do disco.
alocação de índice
Suporta acesso aleatório
O acesso não é tão rápido quanto a alocação contínua
sem detritos externos
Alocação de índice misto
Índice
Estrutura de diretório
Estrutura de diretório único
Acesso por nome
A velocidade de pesquisa é lenta, nomes duplicados não são permitidos e o compartilhamento é inconveniente
Estrutura de diretório secundária
Resolvido o problema do nome duplicado
Incapaz de classificar arquivos, falta de flexibilidade
estrutura de diretório em árvore
O acesso aos arquivos por um processo é equivalente ao diretório atual.
Os nós intermediários precisam ser acessados passo a passo pelo nome do caminho, o que aumenta o número de acessos ao disco.
Estrutura de diretório de gráfico acíclico
Para arquivos compartilhados, existe apenas um arquivo real e quaisquer alterações ficarão visíveis para outros usuários.
Implementação de diretório
lista linear
Pega uma lista linear de nomes de arquivos e ponteiros
Usar uma estrutura em cadeia pode reduzir o tempo de exclusão de arquivos
Pesquisa demorada
Tabela hash
Encontre rapidamente
Necessidade de evitar conflitos
Compartilhamento de arquivos
compartilhamento estático
Link físico (com base no nó de índice)
O endereço físico do arquivo e as informações de atributos do arquivo não são mais colocados na entrada do diretório, mas no nó do índice.
O nó do índice também possui uma contagem, que indica que ele é compartilhado por vários usuários.
Links virtuais (usando links simbólicos)
Crie um arquivo de link e encontre o arquivo com base no nome do caminho no arquivo
Somente o proprietário do arquivo possui um ponteiro para seu nó de índice Outros usuários possuem apenas o nome do caminho deste arquivo
Cada vez que você acessa um arquivo, é necessário ler o disco várias vezes, o que é caro.
Ao compartilhar arquivos de rede, você só precisa fornecer o endereço de rede da máquina onde o arquivo está localizado e o nome do caminho do arquivo.
compartilhamento dinâmico
Vários usuários operam em um arquivo ao mesmo tempo
Sistema de arquivo
A estrutura do sistema de arquivos no armazenamento externo
formato físico
Divida setores, verifique setores defeituosos, substitua setores defeituosos
formatação lógica
Partição de disco, inicialização completa do sistema de arquivos de cada partição
produzir
Registro mestre de inicialização MBR
Determine a partição ativa e leia o bloco de inicialização
bloco de inicialização
MBR executa o programa no bloco de inicialização e inicia o sistema operacional
super bloco
Contém todas as informações importantes do sistema de arquivos Quando o sistema de arquivos é iniciado pela primeira vez, o superbloco é lido na memória.
Gerenciamento de espaço livre
Como: bitmap
eu área de nó
Os nós de índice são armazenados continuamente e têm o mesmo tamanho
Diretório raiz
A estrutura do sistema de arquivos na memória
área do usuário
descritor de arquivo/identificador de arquivo
área do kernel
cache de diretório
Tabela de arquivos abertos do sistema
apenas um
O usuário abre a tabela de arquivos
Contém o índice da tabela de arquivos abertos do sistema
sistema de arquivos virtual
Fornece uma interface de chamada de sistema unificada e padrão para usuários de nível superior Proteger diferenças de implementação de sistemas de arquivos específicos subjacentes
É necessário que os arquivos de nível inferior implementem certas funções
Cada arquivo aberto criará um vnode na memória principal, representado por uma estrutura de dados unificada
vnode só existe na memória principal O inode será carregado na memória principal e armazenado na memória externa.
Montagem do sistema de arquivos (instalação)
Registre o sistema de arquivos recém-montado no sistema de arquivos virtual, A tabela de montagem de memória contém informações para cada sistema de arquivos
O sistema de arquivos recém-montado deve fornecer uma lista de endereços de funções para o sistema de arquivos virtual.
Monte o sistema de arquivos no ponto de montagem (diretório pai)
Gerenciamento de espaço de arquivo
Divisão de espaço de armazenamento
Divida o disco físico em volumes de arquivo (disco lógico, volume lógico)
Um volume de arquivo pode ser composto por vários discos físicos
Inicialização do espaço de armazenamento
Inicialização do volume de arquivo
área de diretório
Armazena informações de diretório de arquivos FCB, informações usadas para gerenciamento de espaço de armazenamento em disco
área de arquivo
Armazenar dados de arquivo
gerenciamento de espaço
método de lista livre
Pertence ao método de alocação contínua
Alocar espaço de armazenamento contíguo para arquivos
A primeira adaptação, a melhor adaptação e a pior adaptação podem ser usadas
Reciclagem é o mesmo que alocação dinâmica
método de lista livre
Cadeia de disco grátis
Vincule blocos de disco livres como uma lista vinculada
O bloco de disco livre armazena um ponteiro para o próximo bloco de disco livre.
distribuir
Encontre os blocos de disco que atendem às condições por meio do algoritmo de adaptação
Reciclar
Pendure os blocos de disco reciclados no final da corrente
A alocação e a reciclagem são simples, mas ineficientes
cadeia de extensão livre
Vários blocos de disco livres consecutivos constituem uma área de disco livre
O comprimento da extensão é registrado no primeiro bloco livre do disco na extensão e é um ponteiro para a próxima extensão.
distribuir
Geralmente primeira adaptação
Reciclar
Mesclar área de recuperação com extensões livres adjacentes
A alocação e a reciclagem são problemáticas, mas eficientes
Método bitmap
Use bits binários para indicar se um bloco de disco é usado
Número do disco b = n×i j
n representa o comprimento da palavra
i representa o tamanho da fonte (número da linha)
eu = b/n
remover
j representa o número do bit (número da coluna)
j =b%n
Pegue o resto
Aplicável a alocações contínuas e discretas
Método de vinculação de grupo
O bloco de cadeia de grupo (superbloco) é usado para armazenar o número do bloco de disco livre e o número do próximo grupo de blocos de disco livre.
O número do bloco de disco livre é o primeiro número do bloco de disco do bloco de grupo (extensão)
O número de um grupo é limitado, por exemplo: apenas 100 blocos de disco livres são permitidos para formar um grupo
Se não houver nenhum bloco de disco livre para o próximo grupo, o número do bloco será definido como -1
distribuir
Aloque do último bloco de disco e altere o número de blocos de disco livres no superbloco
Se um determinado bloco armazena o próximo grupo de informações, as informações devem ser copiadas para o superbloco e então alocadas.
Reciclar
Se o superbloco não estiver cheio
Em seguida, insira o bloco reciclado diretamente após o superbloco
Se o superbloco estiver cheio
Método de inserção de cabeçalho semelhante a uma lista vinculada
disco
estrutura
disco
acompanhar
setor
É um bloco de disco
Cada setor tem a mesma capacidade e o setor mais interno tem a maior densidade.
Disco
Cada superfície do disco corresponde a uma cabeça magnética
cilindro
Trilhas com a mesma posição relativa em todos os discos formam um cilindro
O endereço do disco é representado por (número do cilindro-número do disco-número do setor)
Algoritmo de agendamento de disco
O tempo necessário para ler e escrever
procure tempo
Comece o braço da cabeça
Tempo gasto
cabeça em movimento
Leva m para abranger uma trilha e precisa abranger n trilhas.
=sm×n
Tempo de transmissão
Tempo de leitura/gravação
A velocidade de rotação é r, o número de bytes lidos e escritos é b e o número de bytes em cada trilha é N
= b/(rN)
atraso
A velocidade do disco é r
= 1/(2r)
Algoritmo de agendamento de disco
Afetará diretamente o tempo de busca
Primeiro a chegar, primeiro a ser servido
Menor tempo de pesquisa primeiro
Pode causar fome
Algoritmo de varredura
A cabeça magnética só pode se mover na direção oposta quando se move para a trilha mais interna ou mais externa.
Mesmo que a camada mais externa ou mais interna não processe a solicitação, você ainda terá que se mover aqui antes de começar a se mover na direção oposta.
Não causará fome
algoritmo de aparência
Melhorias no algoritmo de digitalização
Se não houver outras solicitações na direção do movimento da cabeça, você poderá alterar a direção diretamente.
Varredura de ciclo (despacho do elevador)
Resolva o problema da resposta desigual do algoritmo de varredura para várias posições
Não responda a nenhuma solicitação ao retornar e vá diretamente para o ponto inicial
Só mude de direção depois de passar para a borda (o mesmo que o algoritmo de varredura)
algoritmo c-look
Melhorias na varredura de loop
Não há necessidade de mover-se até a borda para alterar a direção. A direção do movimento pode ser alterada sem qualquer outra solicitação.
Maneiras de reduzir a latência
Numeração alternativa
Mantenha setores logicamente adjacentes fisicamente separados
Nomenclatura errada
Deixe os setores do mesmo setor serem escalonados (por exemplo, o setor 0 e o setor 1 são separados por setores com outros números)
Projeto de estrutura de endereço
Número do cilindro-número do disco-número do setor
Tempo de movimento da cabeça reduzido
Gerenciamento de Disco
Inicialização de disco
formato físico
Divida cada trilha do disco em setores
Partição
Particione o disco, cada partição consiste em vários cilindros
formatação lógica
Criar sistema de arquivos
bloco de inicialização
Uma série de trabalhos de inicialização são necessários quando o computador é ligado, e o trabalho de inicialização é concluído executando o programa bootloader.
O bootloader completo é armazenado no bloco de inicialização (bloco de inicialização) do disco, que está localizado em um local fixo no disco
Processamento de bloco incorreto
Blocos ruins são falhas de hardware
Para disco simples
Blocos defeituosos são opacos para o sistema operacional (serão marcados)
Para discos complexos
setor sobressalente
Para discos complexos, o controlador de disco manterá uma lista vinculada de blocos defeituosos, inicializá-la-á durante a formatação física e usará setores sobressalentes para substituir blocos defeituosos.
Unidade de estado sólido SSD
princípio
Baseado em memória flash Pertence à ROM apagável eletricamente (EEPROM)
composição
camada de tradução flash
Número do bloco lógico de tradução
Encontre a página correspondente
mídia de armazenamento
Vários chips de memória flash
Cada chip contém vários blocos
Cada bloco contém várias páginas
Desempenho de leitura e gravação
em páginas
em blocos
Suporta acesso aleatório
Velocidade de leitura rápida Velocidade de escrita lenta
Comparação com disco rígido mecânico
SSD lê e grava mais rápido que discos rígidos mecânicos e tem acesso aleatório
SSD é silencioso e silencioso
Um determinado bloco de SSD será danificado após ser apagado várias vezes. Os setores mecânicos do disco rígido não serão danificados devido à gravação pesada
Nivelamento de desgaste
média de operações de apagamento entre blocos
Nivelamento de desgaste dinâmico
Ao gravar dados, dê prioridade aos blocos de memória flash com menos apagamentos acumulados.
nivelamento de desgaste estático
O bloco antigo é responsável pelas operações de leitura. O novo bloco é responsável pelas operações de gravação.
Estático é melhor que dinâmico
Capítulo 5 Gerenciamento de IO
Classificação do equipamento
dispositivo de bloqueio
A troca de dados ocorre em blocos
Alta taxa de transmissão
dispositivo de personagem
A troca de dados está em caracteres
Baixa taxa de transferência, não endereçável
dispositivo de baixa velocidade
Mouse e teclado
equipamento de velocidade média
impressora
equipamento de alta velocidade
unidade de disco, unidade de CD
interface io
controlador de dispositivo
Localizado entre a CPU e o dispositivo
Interface entre controlador de dispositivo e CPU
Contém linhas de dados, linhas de endereço, linhas de controle
Interface entre o controlador do dispositivo e o dispositivo
Existem uma ou mais interfaces de dispositivo no controlador
lógica
Realize o controle do equipamento
Funções do controlador de dispositivo
Aceita comandos para identificar a CPU
troca de dados
Identifique e relate o status do dispositivo
reconhecimento de endereço
buffer de dados
controle de erros
porta io
Registros no controlador do dispositivo que podem ser acessados diretamente pela CPU
Em outras palavras, múltiplas portas io formam uma interface io
registro de dados
registro de status
registro de controle
Método de comunicação de CPU e porta io
Endereçamento independente
Atribua um número de porta a cada porta e somente o sistema operacional poderá acessar a porta usando instruções io especiais
Endereçamento unificado
Cada porta recebe um endereço de memória exclusivo
método de controle io
controle direto do programa
A CPU verifica o status do periférico em um loop até determinar que a palavra está no registro de dados do controlador io.
Modo acionado por interrupção
Permitir que dispositivos io interrompam ativamente a operação da CPU e solicitem serviços, liberando assim a CPU
Interrompa a CPU sempre que dados precisarem ser transferidos
Modo DMA
Estabeleça um caminho direto de troca de dados entre dispositivos io e memória
Interrompe a CPU ao final do lote solicitado de transferência de dados
Quando a CPU emite uma instrução, ela só pode ler ou escrever blocos de dados consecutivos.
Modo de controle de canal
Um processador especificamente responsável pela entrada e saída
é uma peça de hardware
A CPU emite um comando io, indicando a localização do programa do canal e do dispositivo io para execução.
O canal executa o programa do canal na memória
Canais compartilham memória com a CPU
hierarquia de software io
Software IO do usuário
Implementar tecnologia de spool
tecnologia de dispositivos virtuais
Melhorar a utilização de equipamentos exclusivos
Converta um dispositivo exclusivo em um dispositivo compartilhado
Facilite a contradição entre a alta velocidade da CPU e a baixa velocidade do dispositivo io
através de software
Requer suporte técnico de multiprogramação
O sistema abre duas áreas na área fixa do disco, poços de entrada e saída.
Abra dois buffers na memória: buffer de entrada e buffer de saída
Impressora compartilhada
Dispositivo exclusivo
Um dispositivo que permite o uso serial por processos individuais
Usar alocação estática
Dispositivo compartilhado
Um dispositivo que permite que vários processos o usem juntos
Uso simultâneo em um sentido macro Microscopicamente, ainda alterna
Usar alocação dinâmica
Princípios de impressão compartilhados
O sistema coloca as solicitações de impressão exigidas por cada usuário no poço de entrada do disco e usa a diferença de velocidade entre o disco, a memória e a CPU para obter alternância microscópica e simultânea macroscópica.
Software independente de dispositivo (software independente de dispositivo)
independência
O dispositivo com o qual o usuário está programando não tem nada a ver com o dispositivo real
Função
Gerenciar tabela de dispositivos lógicos
Configure apenas uma tabela de dispositivos lógicos do sistema LUT
Configure a tabela de dispositivos lógicos LUT para cada usuário
controle de erros
Alocação e reciclagem de equipamentos
Fatores considerados na alocação
Propriedades intrínsecas do dispositivo
Algoritmo de alocação de dispositivos
Segurança de alocação de dispositivos
Método de distribuição seguro
Após o processo emitir uma solicitação io, ele entra no estado de bloqueio e não é liberado até que a operação io seja concluída.
Dispositivos CPU e io tornam-se trabalho serial
Método de alocação inseguro
Depois que o processo emite uma solicitação io, ele continua em execução e ainda pode emitir solicitações io. Ele só entrará no bloqueio quando a solicitação io não puder ser atendida.
impasse possível
estratégia de alocação
alocação estática
Aloque todos os recursos necessários desde o início
alocação dinâmica
Continue a alocação conforme necessário durante a execução do processo
Estrutura de dados de alocação de dispositivos
Canal, controlador, relacionamento com dispositivo
Tabela de controle de dispositivos DCT
Representa um determinado dispositivo, e o conteúdo da entrada da tabela é cada atributo do dispositivo.
Mesa de controle do controlador COCT
Tabela de controle de canal CHCT
Cada canal corresponde a um CHCT
Tabela de dispositivos do sistema SDT
Incluindo todos os dispositivos
Melhorias na etapa de atribuição
Nome do dispositivo lógico fornecido pelo usuário
Através do mapeamento de nomes de dispositivos lógicos e nomes de dispositivos físicos (tabela de dispositivos lógicos LUT)
As entradas LUT incluem nomes de dispositivos lógicos, nomes de dispositivos físicos e endereços de entrada de driver de dispositivo.
Gerenciamento de buffer
Propósito
Resolva o problema de acúmulo de dados causado pela velocidade de entrada e saída ser mais lenta que a velocidade de processamento da CPU
buffer único
Calcule o tempo de processamento de cada dado
Suponha um estado inicial e calcule o tempo necessário para atingir esse estado na próxima vez
O tempo de entrada no buffer é T, o tempo de transferência do buffer para a área de trabalho é M e o tempo de processamento dos dados é C
Estado inicial: área de trabalho cheia, buffer vazio
Tempo necessário para processar cada bloco de dados: MAX (C, T) M
A fórmula serve para referência, problemas específicos são analisados detalhadamente e é utilizado um gráfico de Gantt.
buffer duplo
A área de trabalho está vazia, um buffer está vazio e um buffer está cheio.
Tempo necessário para processar cada bloco de dados: MAX (C M, T)
conjunto de buffers
Habilite processos simultâneos para entrada e saída eficientes
Implementar agendamento io
Use algum algoritmo para determinar uma boa ordem para processar solicitações io
Proteção de dispositivo
Os dispositivos são vistos como arquivos especiais, cada arquivo recebe FCB e as permissões são definidas
driver do dispositivo
Controle específico sobre dispositivos de hardware
Calcule o número do cilindro, número da cabeça, número do setor, etc. do disco onde os dados estão localizados
Dispositivos diferentes requerem drivers diferentes
API io
interface de dispositivo de personagem
obter/colocar chamada, ler e escrever um caractere no dispositivo de caracteres
interface do dispositivo de bloqueio
chamada de sistema de leitura/gravação: leitura e gravação de caracteres procurar: Modificar
Interface de dispositivo de rede
interface de soquete de rede chamada de sistema de soquete: crie um soquete de rede e especifique o protocolo de rede bind: Vincula o soquete à porta local conectar: conecta o soquete ao endereço remoto leitura/gravação: lê e grava dados do soquete
Bloqueio/não bloqueio io
bloqueio
O programa emite uma chamada de sistema io e o processo fica bloqueado e aguarda.
io sem bloqueio
O programa emite uma chamada de sistema io, e a chamada de sistema pode retornar rapidamente, e o processo não precisa ser bloqueado e esperar.