Seguidores

Sistemas Operacionais

 Ementa: Conceitos básicos. Visões. Processos: conceito, estados. Gerência de filas. Proteção entre processos. Sessões críticas. Semáforos. Deadlock. Gerência do processador. Técnicas de escalonamento. Gerenciamento de memória. Paginação e segmentação. Operações de entrada e saída. Processamento de interrupções. Memória virtual. Exemplos de sistemas operacionais usuais.

===========================================

E-mail para suporte: george.marra@unialfa.com.br 

GitHub

 https://github.com/GeorgeMendesMarra/GeorgeMendesMarra

===========================================

 


1. Conceitos Básicos e Processos

Conceitos Básicos e Visões

Um Sistema Operacional (SO) é o software fundamental que gerencia todos os recursos de hardware e software do computador. Ele atua como uma interface entre o usuário e a máquina. As "visões" podem ser entendidas como as perspectivas de uso:

  • Visão do Usuário: Para o usuário, o SO é a interface gráfica (como o Windows ou macOS), o gerenciador de arquivos e os programas que ele utiliza.

  • Visão do Programador de Sistema: Para o programador, o SO é um conjunto de bibliotecas e chamadas de sistema (APIs) que permitem interagir com o hardware.

Processos: Conceito e Estados

Um processo é uma instância de um programa em execução. O SO gerencia o ciclo de vida de cada processo. Um processo pode ter vários estados:

  • Novo (New): O processo está sendo criado.

  • Pronto (Ready): O processo está pronto para ser executado e aguarda sua vez no processador.

  • Execução (Running): As instruções do processo estão sendo executadas pelo processador.

  • Espera/Bloqueado (Waiting/Blocked): O processo está aguardando a conclusão de alguma operação (como uma entrada/saída) antes de poder continuar.

  • Finalizado (Terminated): O processo terminou sua execução.


2. Gerência de Filas, Proteção, Sincronização e Deadlock

Gerência de Filas e Proteção entre Processos

O SO usa filas para organizar os processos que estão aguardando o processador ou algum recurso. A proteção entre processos é crucial para a estabilidade do sistema. O SO garante que um processo não possa acessar ou modificar a memória de outro processo, isolando-os e prevenindo falhas em cascata.

Sessões Críticas e Semáforos

Uma sessão crítica é uma parte do código que acessa um recurso compartilhado (como uma variável ou um arquivo). Se dois processos acessarem esse recurso ao mesmo tempo, pode haver inconsistência. Para evitar isso, usamos mecanismos de sincronização. Semáforos são um tipo de variável especial, usada para controlar o acesso a sessões críticas, garantindo que apenas um processo por vez possa entrar e usar o recurso.

Deadlock

O deadlock (impasse) é uma situação em que dois ou mais processos estão bloqueados, cada um esperando que o outro libere um recurso. Pense em dois carros em uma rua estreita, um de frente para o outro, sem poder se mover. O SO pode usar técnicas para prevenir, evitar, detectar ou recuperar-se de deadlocks.


3. Gerência do Processador e Memória

Gerência do Processador e Técnicas de Escalonamento

A gerência do processador é a tarefa de decidir qual processo, da fila de processos prontos, deve ser executado a seguir. As técnicas de escalonamento são os algoritmos usados para tomar essa decisão:

  • FIFO (First-In, First-Out): O primeiro processo a chegar é o primeiro a ser executado.

  • Round Robin: Cada processo recebe um pequeno "quantum" (intervalo de tempo) de processador. Se o processo não terminar, ele volta para o fim da fila.

  • Prioridades: Processos com maior prioridade são executados antes.

Gerenciamento de Memória, Paginação e Segmentação

O gerenciamento de memória é a forma como o SO aloca e desaloca espaço na memória RAM para os processos.

  • Paginação: A memória é dividida em blocos de tamanho fixo chamados páginas. A memória física também é dividida em blocos de mesmo tamanho chamados frames. Isso permite que um processo seja alocado em frames não contíguos na memória, otimizando o uso.

  • Segmentação: A memória é dividida em blocos de tamanho variável, chamados segmentos, que correspondem a partes lógicas do programa (código, dados, etc.).


4. Operações de Entrada/Saída e Memória Virtual

Operações de Entrada e Saída

As operações de entrada e saída (E/S) são a forma como o SO gerencia a comunicação com dispositivos como teclado, mouse, impressoras e discos rígidos. O SO utiliza drivers e buffers para otimizar essas operações, garantindo que o processador não perca tempo esperando.

Processamento de Interrupções

Uma interrupção é um sinal enviado pelo hardware ou software para o processador, informando que algo precisa de atenção. Por exemplo, quando você pressiona uma tecla, isso gera uma interrupção. O processador para o que está fazendo, salva o seu estado e executa uma rotina de tratamento da interrupção.

Memória Virtual

A memória virtual é uma técnica que usa o disco rígido como uma extensão da memória RAM. Isso permite que um computador execute programas que exigem mais memória do que a disponível fisicamente. O SO gerencia a transferência de páginas (da paginação) entre a RAM e o disco, criando a ilusão de um espaço de memória maior.


5. Exemplos de Sistemas Operacionais Usuais

Os Sistemas Operacionais mais conhecidos se encaixam em diferentes categorias:

  • Sistemas Operacionais Monousuário e Multitarefa: Como o Windows e o macOS, que permitem que um único usuário execute vários programas ao mesmo tempo.

  • Sistemas Operacionais Multiusuário: Como o Linux e o UNIX, que permitem que múltiplos usuários acessem o mesmo sistema e executem programas simultaneamente, de forma segura e isolada.

  • Sistemas Operacionais para Dispositivos Móveis: Como o Android e o iOS, otimizados para telas sensíveis ao toque e baixo consumo de energia.

  • Sistemas Operacionais de Tempo Real: Utilizados em sistemas de controle industrial ou robótica, onde o tempo de resposta é crítico.

 Bibliografia Básica


TANENBAUM, A. S.. Sistemas operacionais modernos. 2. ed. São Paulo: Prentice Hall, 2008.


SILBERSCHATZ, Abraham. Fundamentos de sistemas operacionais: princípios básicos. Rio de Janeiro (RJ): LTC 2013.


SHAY, W. A.. Sistemas operacionais. São Paulo: Makron Books 1996.


Bibliografia Complementar


BALL, H.. Usando Linux. 4ª. Edição Rio de Janeiro: Campus 1999.


GUIMARÃES, C. C.. Princípios de sistemas operacionais. Rio de Janeiro (RJ): Editora Campus, 1983.


MANZANO, J. A. N. G.. Fundamentos em programação Assembly: para computadores IBM-PC a partir dos microprocessadores INTEL 8086/8088. 5ª. Edição, Érica, 2010.


TANENBAUM, A. S.. Organização Estruturada de Computadores. 5ª Edição, PrenticeHall, 2007.


STALLINGS W.. Arquitetura e Organização de Computadores. 8ª Edição, Pearson, 2010

Nenhum comentário:

Postar um comentário

GitHub  https://github.com/GeorgeMendesMarra/GeorgeMendesMarra