Please enable JavaScript.
Coggle requires JavaScript to display documents.
Sistemas Operacionais - 1º Semestre, Sistemas Operacionais - 1º Semestre -…
Sistemas Operacionais - 1º Semestre
Funções
A função do sistema operacional como uma máquina estendida ou máquina virtual é de esconder do programador a complexidade do hardware, apresentando uma interface amigável e gerenciável do sistema.
O sistema operacional controla de forma ordenada e compartilhada os recursos do computador.
Principais serviços
Fornece meios para que um programa seja carregado em memória e executado.
Possui um sistema de arquivos, permitindo criar, ler, escrever e excluir arquivos.
Oferece uma interface de acesso aos periféricos
Promove mecanismos de monitoração de recursos.
Fornece meios para armazenar/manter o estado do sistema.
Rotinas do sistemas operacional
O sistema operacional é composto por um conjunto de rotinas chamado kernel ou núcleo do sistema operacional, que gerencia os recursos do computador. Por exemplo, ao ligarmos o computador, o kernel executa programas que inicializam o computador e um conjunto de rotinas são executadas ao mesmo tempo sem uma ordem pré-definida.
Modos de acesso
Modo usuário, os programas podem executar ações sem privilégios, como leitura de um arquivo.
Modo kernel, o acesso pode ser realizado em modo usuário ou em modo com privilégio total no computador, como acesso ao disco.
Estruturas dos sistemas operacionais
Quando falamos em estruturas dos sistemas operacionais, estamos tratando da maneira pela qual o código do sistema é organizado e o inter-relacionamento entre seus diversos componentes pode variar conforme a concepção do projeto.
Sistemas Monolíticos
Sistemas em Camadas
Máquinas Virtuais
Modelo Cliente-Servidor
Classificação dos sistemas operacionais
Monoprogramáveis
Multiprogramáveis
Múltiplos Processadores
Componentes do sistema operacional
Dispositivos de entrada e saída
Processos
Criação de processos
É responsável por criar, finalizar, escalonar, sincronizar processos e threads. Um processo é um programa em execução.
Quando o sistema operacional é inicializado, são criados vários processos. Existem os processos de primeiro plano, que interagem com os usuários e suas aplicações, e os processos de segundo plano, que possuem uma função específica, como um processo para atualizar e-mails quando alguma mensagem chegar a caixa de entrada.
Quando, por exemplo, um processo está fazendo download, ele aciona um outro processo para ajudá-lo. Enquanto um processo faz o download o outro processo está armazenando os dados em disco.
Quando o usuário digita um comando ou solicita a abertura de um ícone para a abertura de um aplicativo.
Esses processos são criados em computadores de grande porte, os mainframes.
Término de processos
Saída por erro(voluntária): Ocorre quando o processo tenta acessar um arquivo que não existe e é emitida uma chamada de saída do sistema.
Erro Fatal(Involuntário): Quando ocorre um erro de programa.
Saída normal (voluntária): ocorre quando o processo para de executar por ter acabado seu trabalho.
Cancelamento por um outro processo: Ocorre quando um processo que possui permissão emite uma chamada ao sistema para cancelar outro processo.
Hierarquia de Processos
Uma hierarquia de processos se dá quando, em alguns sistemas, um processo cria outro processo e estes ficam associados.
Estados do Processo
Um processo está em execução quando está sendo processado pela CPU.
Está pronto quando possui todas as condições necessárias para ser executado e está aguardando.
Quando aguarda por um evento externo ou por um recurso para processar.
Threads
É um fluxo de controle (execução) dentro do processo. Um processo pode conter um ou vários threads que compartilham os recursos do processo.
Aplicações compostas por threads podem ser executadas em paralelo.
Em relação ao desempenho, o uso de threads acelera a execução da aplicação.
Implementação de Threads
pode ocorrer no espaço do usuário, no núcleo do sistema operacional ou em ambos (implementação híbrida).
Thread de usuário: é implementada pela aplicação do usuário e o sistema operacional não sabe de sua existência.
Thread do núcleo: é implementada e gerenciada pelo núcleo do sistema operacional.
Threads híbridas: são implementadas tanto no espaço do usuário, como no núcleo do sistema operacional.
Arquivos
Memória
Condições de Disputa ou Condições de Corrida
Condições de disputa ou condições de corrida ocorrem quando dois ou mais processos estão lendo ou escrevendo algum dado compartilhado e o resultado final depende das informações de quem e quando executa, podendo gerar dados inconsistentes.
Nunca dois ou mais processos podem estar simultaneamente em suas regiões críticas;
Nada pode ser afirmado sobre o número e a velocidade de CPUs;
Nenhum processo executando em uma região crítica pode bloquear outros processos;
Nenhum processo pode esperar eternamente para entrar em sua região crítica.
Exclusão mútua
Exclusão Mútua com Espera Ociosa
Dormir e Acordar
Semáforos
Monitores
Troca de Mensagens
Escalonador de processos
É necessário a escolher entre executar o processo pai ou o processo filho.
Quando um processo é finalizado, é necessário escolher outro a ser executado.
Quando um processo é bloqueado e está aguardando uma entrada/saída, é necessário escolher outro processo.
Se a interrupção for gerada por um dispositivo que finalizou a execução, o processo passará de “bloqueado” para “pronto” e o escalonador deverá escolher entre continuar executando o processo atual ou o que acabou de ficar pronto.
A cada interrupção do hardware de relógio pode haver um escalonamento de processos.
Lote
Botão
Tempo Real
Escalonador de Threads
Threads de usuário
Threads de núcleo
Sistemas Operacionais - 1º Semestre
Nomeação de arquivos
Estrutura dos arquivos
Tipos de arquivos
Acesso aos arquivos
Atributos dos arquivos
Diretórios Simples
Sistemas de Diretório Hierárquico
Nomes de Caminhos dos Diretórios
Sistemas de Diretórios do Linux
Sistemas de Diretórios do Windows
Alocação contígua
Alocação por Lista Encadeada
Alocação por Lista Encadeada usando uma tabela na memória
I-nodes
Implementação de arquivos e diretórios
Gerenciamento de Espaço em Disco
Segurança e Confiabilidade do Sistema de Arquivos
Gerenciador de memória
Monoprogramação sem troca de processos ou paginação
Multiprogramação com partições fixas
Troca de processos
Multiprogramação com partições variáveis
Gerenciamento de memória com mapa de bits
Gerenciamento de memória com listas encadeadas
Algoritmos de troca de processos
Memória virtual
Paginação e tabela de páginas
Algoritmos de substituição de páginas
Segmentação