Sistemas Operacionais – Aulas 7,8 e 9
description
Transcript of Sistemas Operacionais – Aulas 7,8 e 9
![Page 1: Sistemas Operacionais – Aulas 7,8 e 9](https://reader035.fdocumentos.tips/reader035/viewer/2022062422/56814093550346895dac2794/html5/thumbnails/1.jpg)
Prof. Carlos Alberto Seixas
Sistemas Operacionais – Aulas 7,8 e 9
![Page 2: Sistemas Operacionais – Aulas 7,8 e 9](https://reader035.fdocumentos.tips/reader035/viewer/2022062422/56814093550346895dac2794/html5/thumbnails/2.jpg)
Agenda da aulaParte I - Interpretando a notícia Parte II – Respondendo QuestionárioParte III – Revisão dos ConceitosParte IV - Teoria de SO - Classificação
![Page 3: Sistemas Operacionais – Aulas 7,8 e 9](https://reader035.fdocumentos.tips/reader035/viewer/2022062422/56814093550346895dac2794/html5/thumbnails/3.jpg)
Interpretando a Notícia
Parte I
![Page 4: Sistemas Operacionais – Aulas 7,8 e 9](https://reader035.fdocumentos.tips/reader035/viewer/2022062422/56814093550346895dac2794/html5/thumbnails/4.jpg)
SO no mundo...Blog do Planalto Fonte: IDG NOW
![Page 5: Sistemas Operacionais – Aulas 7,8 e 9](https://reader035.fdocumentos.tips/reader035/viewer/2022062422/56814093550346895dac2794/html5/thumbnails/5.jpg)
Parte IIRespondendo o questionário:
![Page 6: Sistemas Operacionais – Aulas 7,8 e 9](https://reader035.fdocumentos.tips/reader035/viewer/2022062422/56814093550346895dac2794/html5/thumbnails/6.jpg)
Questões1. Qual a função do kernel para o sistema operacional?2. Quais as características um sistema operacional
deve manter?3. Quais os componentes de um SO?4. Cite um exemplo:
De um programa e um processo criado por ele no SO Windows XP.
Localize e descreva a quantidade de memória utilizada pelo processo criado.
5. Defina e diferencie: programa e processo.
Editar arquivo com as respostas e enviar para:[email protected]
![Page 7: Sistemas Operacionais – Aulas 7,8 e 9](https://reader035.fdocumentos.tips/reader035/viewer/2022062422/56814093550346895dac2794/html5/thumbnails/7.jpg)
Questão 11. Qual a função do kernel para o sistema
operacional?“Um Sistema Operacional pode ser definido como um
gerenciador dos recursos que compõem o computador (processador, memória, I/O, arquivos, etc). Os problemas centrais que o Sistema Operacional deve resolver são o compartilhamento ordenado, a proteção dos recursos a serem usados pelas aplicações do usuário e o interfaceamento entre este e a máquina.” Stemmer.
- tratamento de interrupções; - gerenciamento de processos (criação e destruição de processos; -sincronização e comunicação entre processos, ...); - gerenciamento de memória; - gerenciamento do sistema de arquivos; - operações de E/S
![Page 8: Sistemas Operacionais – Aulas 7,8 e 9](https://reader035.fdocumentos.tips/reader035/viewer/2022062422/56814093550346895dac2794/html5/thumbnails/8.jpg)
Questão 22. Quais as características um sistema
operacional deve manter?Eficiência
Baixo tempo de resposta, pouca ociosidade da UCP e alta taxa de processamento.
ConfiabilidadePouca incidência de falhas e exatidão dos dados computados.
MantenabilidadeFacilidade de correção ou incorporação de novas
características.Pequena dimensão
Simplicidade e baixa ocupação da memóriaConcorrência
Capacidade de manutenção de tarefas concorrentesCompartilhamento de recursos
Gerencia de recursos de hardware e software compartilhados
![Page 9: Sistemas Operacionais – Aulas 7,8 e 9](https://reader035.fdocumentos.tips/reader035/viewer/2022062422/56814093550346895dac2794/html5/thumbnails/9.jpg)
Questão 33. Quais os componentes de um SO?Núcleo
Responsável pela gerência do processador, tratamento de interrupções, comunicação e sincronização de processos.
Gerente de MemóriaResponsável pelo controle e alocação de memória aos
processos ativos.Sistema de E/S
Responsável pelo controle e execução de operações de E/S e otimização do uso dos periféricos.
Sistema de ArquivosResponsável pelo acesso e integridade dos dados
residentes na memória secundária.Processador de Comandos / Interface com o
UsuárioResponsável pela interface conversacional com o usuário.
![Page 10: Sistemas Operacionais – Aulas 7,8 e 9](https://reader035.fdocumentos.tips/reader035/viewer/2022062422/56814093550346895dac2794/html5/thumbnails/10.jpg)
Questão 44. Cite um exemplo:
De um programa e um processo criado por ele no SO Windows XP.
Localize e descreva a quantidade de memória utilizada pelo processo criado.
Programa: Paint, Processo mspaint.exeMemória: 2.308 Kb
![Page 11: Sistemas Operacionais – Aulas 7,8 e 9](https://reader035.fdocumentos.tips/reader035/viewer/2022062422/56814093550346895dac2794/html5/thumbnails/11.jpg)
Questão 55. Defina e diferencie: programa e processo.Programa: é um conjunto de instruções
ordenadas e armazenadas em determinado sistema de arquivos, que possui uma finalidade específica.
Processo: é um programa ou parte integrante deste em seu estado de execução, ocupando memória principal e processamento, em outras palavras, é a ação de execução de um determinado programa.
![Page 12: Sistemas Operacionais – Aulas 7,8 e 9](https://reader035.fdocumentos.tips/reader035/viewer/2022062422/56814093550346895dac2794/html5/thumbnails/12.jpg)
Recordando a definiçãoProcessosSão execuções em andamento no sistema,
para realização de tarefa, o Kernel e o escalonador são responsáveis por criarem as threads (organiza e exercuta processos), o Kernel ele controla a parte do hardware é faz com que os processos sejam executados na cpu, diferente do escalonador que organiza qual dos processos tem mais prioridades para serem processados.
![Page 13: Sistemas Operacionais – Aulas 7,8 e 9](https://reader035.fdocumentos.tips/reader035/viewer/2022062422/56814093550346895dac2794/html5/thumbnails/13.jpg)
Parte IIIBreve revisão dos conceitos
![Page 14: Sistemas Operacionais – Aulas 7,8 e 9](https://reader035.fdocumentos.tips/reader035/viewer/2022062422/56814093550346895dac2794/html5/thumbnails/14.jpg)
Recordando...O QUE É UM SISTEMA OPERACIONAL.O QUE É UM SISTEMA OPERACIONAL.Sistema Operacional é um programa que
atua como um intermediário entre o usuário (seja ele um usuário "real" ou aplicativo) e o hardware do computador. O Sistema Operacional cria uma camada de abstração entre o usuário e o hardware facilitando a vida do usuário e também possui rotinas (bibliotecas) que gerencia todo o seu hardware.
![Page 15: Sistemas Operacionais – Aulas 7,8 e 9](https://reader035.fdocumentos.tips/reader035/viewer/2022062422/56814093550346895dac2794/html5/thumbnails/15.jpg)
SO
![Page 16: Sistemas Operacionais – Aulas 7,8 e 9](https://reader035.fdocumentos.tips/reader035/viewer/2022062422/56814093550346895dac2794/html5/thumbnails/16.jpg)
Recordando.... Kernel
Kernel
![Page 17: Sistemas Operacionais – Aulas 7,8 e 9](https://reader035.fdocumentos.tips/reader035/viewer/2022062422/56814093550346895dac2794/html5/thumbnails/17.jpg)
Recordando ...KernelO QUE É UM KERNEL.O Kernel é o software que fornece serviços
básicos para todas as outras partes de um SO. De forma mais detalhada, o Núcleo é um conjunto de rotinas que oferecem serviços aos usuários do sistema e suas aplicações, bem como a outras rotinas do próprio SO.
![Page 18: Sistemas Operacionais – Aulas 7,8 e 9](https://reader035.fdocumentos.tips/reader035/viewer/2022062422/56814093550346895dac2794/html5/thumbnails/18.jpg)
Processos São execuções em andamento no sistema,
para realização de tarefa, o Kernel é o escalonador são responsável por criarem as threads (organiza e exercuta processos), o Kernel ele controla a parte do hardware é faz com que os processos sejam executados na cpu, diferente do escalonador que organiza qual dos processos tem mais prioridades para serem processados.
![Page 19: Sistemas Operacionais – Aulas 7,8 e 9](https://reader035.fdocumentos.tips/reader035/viewer/2022062422/56814093550346895dac2794/html5/thumbnails/19.jpg)
ProcessosProcesso é o conceito central em qualquer
sistema operacional, uma abstração de um programa em execução, ou seja, o programa é o código e o processo é a execução.
Programa
P1
P2 P3
Processo
Execução
![Page 20: Sistemas Operacionais – Aulas 7,8 e 9](https://reader035.fdocumentos.tips/reader035/viewer/2022062422/56814093550346895dac2794/html5/thumbnails/20.jpg)
Na prática...Os computadores podem fazer várias
tarefas ao mesmo tempo: enquanto executa um programa do usuário, ele pode estar lendo os dados de um disco e também enviando algo para ser impresso.
Na realidade ele esta executando vários processos, saltando um a um tão rápido que nos dá a falsa impressão que estão sendo executados todos ao mesmo tempo, é o que chamamos de processos seqüenciais.
![Page 21: Sistemas Operacionais – Aulas 7,8 e 9](https://reader035.fdocumentos.tips/reader035/viewer/2022062422/56814093550346895dac2794/html5/thumbnails/21.jpg)
CHAMADAS DE SISTEMASAs chamadas ao Sistemas são um
mecanismo que tem por objetivo proteger o Núcleo do sistema e de acessar os seus serviços.
Quando uma aplicação ou um programa deseja utilizar algum serviço do Sistema Operacional, realiza a chamada por meio de uma Rotina( procedimento de biblioteca) e essa rotina acessa a System Calls que retorna o dado(objeto, instrução) requerida.
![Page 22: Sistemas Operacionais – Aulas 7,8 e 9](https://reader035.fdocumentos.tips/reader035/viewer/2022062422/56814093550346895dac2794/html5/thumbnails/22.jpg)
Exemplo System CallsA System Calls ReadPara podermos acessar a System Calls Read é
necessário fazer uma chamada através da rotina da biblioteca, que por ocasião tem o mesmo nome Read.
E quem faz essa chamada a biblioteca é o programa ou o usuário.
Que no caso se o programa é escrito em C ficaria assim: contador = read (arquivo,buffer,nbytes)
A System Calls após receber a chamada da biblioteca, vai no lugar alocado e retorna o resultado de nbytes do arquivo ao usuário.
![Page 23: Sistemas Operacionais – Aulas 7,8 e 9](https://reader035.fdocumentos.tips/reader035/viewer/2022062422/56814093550346895dac2794/html5/thumbnails/23.jpg)
Níveis de AcessoPara melhor proteção do núcleo do S.O,
existe dois níveis de acesso: Modo de acesso privilegiado: que pode
entrar no Kernel e interagir com ele, tem o poder de comprometer o sistema pois atuam diretamente no hardware. Mas só o S.O, por segurança, tem acesso a esse modo e acesso total de instrução do processador;
Modo usuário ou não privilegiado: que não fornece nenhum tipo de perigo pois tem acesso a um número reduzido de instruções.
![Page 24: Sistemas Operacionais – Aulas 7,8 e 9](https://reader035.fdocumentos.tips/reader035/viewer/2022062422/56814093550346895dac2794/html5/thumbnails/24.jpg)
Shell e System CallsO interpretador de comando chamado de Shell é
extremamente útil.É a interface primária entre o usuário e o S.O, Ele e o núcleo são programas separados que se
comunicam através de um conjunto de System Calls . Nele o usuário digita um comando e o Shell comunica-se com o núcleo e pede que crie um processo filho. O processo filho executará o comando através de uma System Calls .
![Page 25: Sistemas Operacionais – Aulas 7,8 e 9](https://reader035.fdocumentos.tips/reader035/viewer/2022062422/56814093550346895dac2794/html5/thumbnails/25.jpg)
Esquema Shell e System Calls
Syste
m
Calls
Núcleo
Syste
m
Calls
SO
Shell
![Page 26: Sistemas Operacionais – Aulas 7,8 e 9](https://reader035.fdocumentos.tips/reader035/viewer/2022062422/56814093550346895dac2794/html5/thumbnails/26.jpg)
Classificação de SO
Parte IV
![Page 27: Sistemas Operacionais – Aulas 7,8 e 9](https://reader035.fdocumentos.tips/reader035/viewer/2022062422/56814093550346895dac2794/html5/thumbnails/27.jpg)
Classificação de SOPodemos classificar os SOs segundo dois enfoques:A arquitetura de seu kernelCapacidade de processamento
![Page 28: Sistemas Operacionais – Aulas 7,8 e 9](https://reader035.fdocumentos.tips/reader035/viewer/2022062422/56814093550346895dac2794/html5/thumbnails/28.jpg)
Classificação de SOSegundo a arquitetura de seu
kernel:Monolítico;Microkernel;Híbrido;
![Page 29: Sistemas Operacionais – Aulas 7,8 e 9](https://reader035.fdocumentos.tips/reader035/viewer/2022062422/56814093550346895dac2794/html5/thumbnails/29.jpg)
Kernel monolítico ou mono-blocoÉ um kernel que implementa uma
interface de alto nível para possibilitar chamadas específicas do sistema para gestão de processos, concorrência e gestão de memória por parte dos módulos dedicados que são executados com privilégios especiais.
![Page 30: Sistemas Operacionais – Aulas 7,8 e 9](https://reader035.fdocumentos.tips/reader035/viewer/2022062422/56814093550346895dac2794/html5/thumbnails/30.jpg)
Kernel monolítico ou mono-bloco É uma arquitetura de kernel onde todo o
kernel é executado no espaço do kernel no modo de privilegiado ou de supervisão.
Como em outras arquiteturas (microkernel e kernel híbrido), o kernel define uma camada de alto nível de abstração sobre o hardware do computador, com um conjunto de primitivas ou chamadas de sistema para implementar os serviços do sistema operacional como gerenciamento de processos, concorrência e gestão de memória em um ou mais módulos.
![Page 31: Sistemas Operacionais – Aulas 7,8 e 9](https://reader035.fdocumentos.tips/reader035/viewer/2022062422/56814093550346895dac2794/html5/thumbnails/31.jpg)
Utilização da memória pelo kernel e pelo usuário
Um sistema operacional convencional separa a memória virtual em espaço do kernel e espaço do usuário.
![Page 32: Sistemas Operacionais – Aulas 7,8 e 9](https://reader035.fdocumentos.tips/reader035/viewer/2022062422/56814093550346895dac2794/html5/thumbnails/32.jpg)
Esquema de utilização da memóriaAs aplicações funcionam aparentemente com
uma grande gama de endereços contíguos, mas, na realidade, as partes estão dispersas em torno da RAM e as partes inativas são guardadas em um arquivo em disco.
Aplicações Fisicamente
![Page 33: Sistemas Operacionais – Aulas 7,8 e 9](https://reader035.fdocumentos.tips/reader035/viewer/2022062422/56814093550346895dac2794/html5/thumbnails/33.jpg)
Memória virtualA memória virtual consiste num conjunto de
recursos de hardware e software que possui três funções básicas:
Assegurar que cada processo (aplicação) tenha o seu próprio espaço de endereçamento, começando em zero (problema de recolocação),
proteção de memória, para impedir que um processo utilize um endereço de memória que não lhe pertença,
possibilitar que uma aplicação utilize mais memória do que a fisicamente existente (essa é a função mais conhecida)
![Page 34: Sistemas Operacionais – Aulas 7,8 e 9](https://reader035.fdocumentos.tips/reader035/viewer/2022062422/56814093550346895dac2794/html5/thumbnails/34.jpg)
Espaço do kernel e espaço do usuárioO espaço do kernel é
estritamente reservado para o kernel, extensões do kernel e alguns drivers de dispositivos. Em muitos sistemas operacionais, o espaço de memória ocupada pelo kernel nunca é paginada no disco.
O espaço de memória do usuário (no qual funcionam todos os aplicativos de modo usuário) pode ser paginada no disco sempre que necessário.
![Page 35: Sistemas Operacionais – Aulas 7,8 e 9](https://reader035.fdocumentos.tips/reader035/viewer/2022062422/56814093550346895dac2794/html5/thumbnails/35.jpg)
Espaço do Kernel (Kernel Space)É o modo protegido, onde rodam os serviços/servidores/módulos
essenciais.No caso dos SO com Microkernel eles são o mínimo possível, no
caso dos monolíticos, vários serviços. Qualquer problema no kernel space pode derrubar o sistemaOs defensores dos SO com microkernel acreditam que uma
abordagem simples no kernel aumenta a estabilidade e confiabilidade do sistema, já que qualquer serviço problemático pode ser desativado, reinicializado, substituído ou atualizado sem precisar rebootar o sistema.
![Page 36: Sistemas Operacionais – Aulas 7,8 e 9](https://reader035.fdocumentos.tips/reader035/viewer/2022062422/56814093550346895dac2794/html5/thumbnails/36.jpg)
Processos e Memória VirtualCada processo no espaço de usuário executa no
seu próprio espaço de memória virtual e, exceto se requisitado, não pode acessar a memória de outro processo.
Essa é a base de proteção de memória nos principais sistemas operacionais de hoje.
Dependendo do privilégio, os processos podem requisitar ao kernel o mapeamento de parte de outros espaços de memória de processos para os seus próprios como é o caso de depuradores.
Os programas podem, inclusive, requisitar áreas de memória compartilhadas com outros processos.
![Page 37: Sistemas Operacionais – Aulas 7,8 e 9](https://reader035.fdocumentos.tips/reader035/viewer/2022062422/56814093550346895dac2794/html5/thumbnails/37.jpg)
SO experimentaisUma outra abordagem de sistemas
operacionais experimentais é ter um único espaço de endereços para todo software e invocar a linguagem de programação da máquina virtual para certificar-se de que memória RAM não possa ser acessada.
Os aplicativos simplesmente não podem adquirir nenhuma referência dos objetos os quais não são permitidos o acesso. Essa abordagem tem sido implementada no JXOS (Jnode), Unununium bem como no projeto de pesquisa da Microsoft Singularity
![Page 38: Sistemas Operacionais – Aulas 7,8 e 9](https://reader035.fdocumentos.tips/reader035/viewer/2022062422/56814093550346895dac2794/html5/thumbnails/38.jpg)
Kernel MonolíticoMais da metade dos grandes sistemas
operacionais usam a arquitetura monolítica.
Os sistemas operacionais de kernel monolítico tem seus problemas.
Há um grande campo de pesquisas para outros meios de se criar um kernel, dentre os mais famosos, se destaca o microkernel.
![Page 39: Sistemas Operacionais – Aulas 7,8 e 9](https://reader035.fdocumentos.tips/reader035/viewer/2022062422/56814093550346895dac2794/html5/thumbnails/39.jpg)
Exemplos de SO com kernel monolíticoLinux, BSD, DOS, Windows 95 a ME, Solaris.
![Page 40: Sistemas Operacionais – Aulas 7,8 e 9](https://reader035.fdocumentos.tips/reader035/viewer/2022062422/56814093550346895dac2794/html5/thumbnails/40.jpg)
Problemas no kernel monolíticoMesmo que cada módulo tenha suas
operações independentes é muito difícil fazer a integração entre todos estes módulos, uma vez que todos os módulos executam num mesmo espaço de endereçamento, um erro em um módulo pode derrubar todo o sistema.
![Page 41: Sistemas Operacionais – Aulas 7,8 e 9](https://reader035.fdocumentos.tips/reader035/viewer/2022062422/56814093550346895dac2794/html5/thumbnails/41.jpg)
Desvantagens do kernel monolíticoÉ complexo "debugar" (É extremamente difícil
de se usar um debugger em nível de fonte); O kernel se torna mais suscetível a bugs; Reiniciar o computador é necessário
freqüentemente (principalmente quando é necessário atualizar o kernel ou adicionar novas funções ao mesmo);
Bugs tendem a ser mais danosos, já que como todas as funções do kernel têm todos os privilégios, um bug em uma função é capaz de afetar áreas, mesmo que sem nenhuma relação direta.
![Page 42: Sistemas Operacionais – Aulas 7,8 e 9](https://reader035.fdocumentos.tips/reader035/viewer/2022062422/56814093550346895dac2794/html5/thumbnails/42.jpg)
VantagemOs SOs Monolíticos ainda conseguem atrair
a atenção de desenvolvedores devido a uma complexidade menor do que Sistemas que possuem um microkernel.
![Page 43: Sistemas Operacionais – Aulas 7,8 e 9](https://reader035.fdocumentos.tips/reader035/viewer/2022062422/56814093550346895dac2794/html5/thumbnails/43.jpg)
MicrokernelÉ um termo usado para caracterizar o sistema
cujas funcionalidades do sistema saíram do kernel e foram para servidores, que se comunicam com um núcleo mínimo, usando o mínimo possível o "espaço do sistema" (nesse local o programa tem acesso à todas as instruções e a todo o hardware) e deixando o máximo de recursos rodando no "espaço do usuário" (no espaço do usuário, o software sofre algumas restrições, não podendo acessar alguns hardwares, nem tem acesso a todas as instruções).
![Page 44: Sistemas Operacionais – Aulas 7,8 e 9](https://reader035.fdocumentos.tips/reader035/viewer/2022062422/56814093550346895dac2794/html5/thumbnails/44.jpg)
Definição 2: Micro-kernel = MicrokernelÉ uma designação de um Sistema
Operacional que possui apenas um núcleo que provê recursos mínimos necessários ao ambiente. Outras funcionalidades são oferecidas através de programas chamados servidores, que se localizam na user-space ou espaço do usuário.
![Page 45: Sistemas Operacionais – Aulas 7,8 e 9](https://reader035.fdocumentos.tips/reader035/viewer/2022062422/56814093550346895dac2794/html5/thumbnails/45.jpg)
Modo usuário e Modo Kernel
M odo kernel
M odo u suá rio
M icrokernel
men
sage
m
mensagem
H ardw are
![Page 46: Sistemas Operacionais – Aulas 7,8 e 9](https://reader035.fdocumentos.tips/reader035/viewer/2022062422/56814093550346895dac2794/html5/thumbnails/46.jpg)
Esquema do Micro-Kernel A figura abaixo representa a interação entre os
softwares que são executados sobre o sistema e sua relação com o kernel.
![Page 47: Sistemas Operacionais – Aulas 7,8 e 9](https://reader035.fdocumentos.tips/reader035/viewer/2022062422/56814093550346895dac2794/html5/thumbnails/47.jpg)
MicrokernelA maioria dos Sos com microkernel
de hoje são mono-servidores, ou seja, possuem apenas um programa no espaço do usuário fazendo todas as funções do kernel.
![Page 48: Sistemas Operacionais – Aulas 7,8 e 9](https://reader035.fdocumentos.tips/reader035/viewer/2022062422/56814093550346895dac2794/html5/thumbnails/48.jpg)
Funcionamento do Micro-KernelO Micro-Kernel basicamente provê serviços :
gerenciamento do espaço de memóriagerência de threads e comunicação entre os processos (IPC –
Inter-Process Communication). Serviços que ficam no user space:
Serviços como rede, vídeo, são considerados não essenciais.
![Page 49: Sistemas Operacionais – Aulas 7,8 e 9](https://reader035.fdocumentos.tips/reader035/viewer/2022062422/56814093550346895dac2794/html5/thumbnails/49.jpg)
ThreadsUm processo tem duas partes:
Parte ativa (fluxo de controle) e passiva (espaço de endereçamento)
Um thread consiste somente do fluxo de controle
É chamado também de processo leve ou diet.
![Page 50: Sistemas Operacionais – Aulas 7,8 e 9](https://reader035.fdocumentos.tips/reader035/viewer/2022062422/56814093550346895dac2794/html5/thumbnails/50.jpg)
ThreadThread, ou linha de execução em
português, é uma forma de um processo dividir a si mesmo em duas ou mais tarefas que podem ser executadas simultaneamente. O suporte à thread é fornecido pelo próprio sistema operacional (SO), no caso da Kernel-Level Thread (KLT),
Se implementada através de uma biblioteca de uma determinada linguagem, no caso de uma User-Level Thread (ULT).
![Page 51: Sistemas Operacionais – Aulas 7,8 e 9](https://reader035.fdocumentos.tips/reader035/viewer/2022062422/56814093550346895dac2794/html5/thumbnails/51.jpg)
Programas, Processos e Threads
•Um thread não é um programa, mas executa dentro de um programa (ver figura)
![Page 52: Sistemas Operacionais – Aulas 7,8 e 9](https://reader035.fdocumentos.tips/reader035/viewer/2022062422/56814093550346895dac2794/html5/thumbnails/52.jpg)
MultithreadÉ mais vantajoso quando temos mais de um
thread no mesmo programa
![Page 53: Sistemas Operacionais – Aulas 7,8 e 9](https://reader035.fdocumentos.tips/reader035/viewer/2022062422/56814093550346895dac2794/html5/thumbnails/53.jpg)
Exemplo aplicação multithreaded •Em um navegador várias coisas podem ocorrer ao mesmo tempo:
oscroll odownload de um applet odownload de uma imagem otocar uma animação otocar um som oimprimir uma página em background odownload de uma nova página
![Page 54: Sistemas Operacionais – Aulas 7,8 e 9](https://reader035.fdocumentos.tips/reader035/viewer/2022062422/56814093550346895dac2794/html5/thumbnails/54.jpg)
Processos <> ThreadsUm thread parece ser um processo mas :
Compartilha o mesmo "espaço de endereçamento" É muito rápido chavear a execução entre threads
mas não entre processos Um thread recebe alguns recursos próprios
durante a execução :Uma pilha de execução para poder chamar métodos,
passar parâmetros, alocar variáveis locais Um "Program Counter"
Chamamos isso o "contexto de execução do thread" Alguns autores chamam thread de "contexto de
execução"
![Page 55: Sistemas Operacionais – Aulas 7,8 e 9](https://reader035.fdocumentos.tips/reader035/viewer/2022062422/56814093550346895dac2794/html5/thumbnails/55.jpg)
ExemploUm jogo onde o mesmo pode ser modelado
com linhas de execução diferentes, sendo uma para desenho de imagem e outra para áudio;
Neste caso, há um thread para tratar rotinas de desenho e outro thread para tratar áudio;
No ponto de vista do usuário, a imagem é desenhada ao mesmo tempo em que o áudio é emitido pelos auto-falantes; Porém, para sistemas com uma única CPU, cada linha de execução é processada por vez;
![Page 56: Sistemas Operacionais – Aulas 7,8 e 9](https://reader035.fdocumentos.tips/reader035/viewer/2022062422/56814093550346895dac2794/html5/thumbnails/56.jpg)
Na prática...Uma linha de execução permite que o usuário de
programa, por exemplo, utilize uma funcionalidade do ambiente enquanto outras linhas de execução realizam outros cálculos e operações.
Em hardwares equipados com uma única CPU, cada linha de execução(Thread) é processada de forma aparentemente simultânea, pois a mudança entre uma linha e outra é feita de forma tão rápida que para o usuário isso está acontecendo paralelamente. Em hardwares com multiplos CPUs ou multi-cores as linhas de execução(Threads) podem ser realizadas realmente de forma simultânea;
![Page 57: Sistemas Operacionais – Aulas 7,8 e 9](https://reader035.fdocumentos.tips/reader035/viewer/2022062422/56814093550346895dac2794/html5/thumbnails/57.jpg)
Exemplos de Microkernel Os Sistemas que possuem um microkernel,
possuem casos de sucesso como é o exemplo do sistema QNX, usado em sistemas de braços de robôs nos Ônibus Espaciais. Alguns desenvolvedores afirmam que o microkernel podem ser mais rápidos e mais fáceis de atualizar e modificar que os sistemas de Kernel monolítico como Linux.
![Page 58: Sistemas Operacionais – Aulas 7,8 e 9](https://reader035.fdocumentos.tips/reader035/viewer/2022062422/56814093550346895dac2794/html5/thumbnails/58.jpg)
Microkernel x Kernel MonolíticoUma corrente de desenvolvedores
incluindo naturalmente o Linus, argumentam que apesar de a princípio um microkernel ser mais simples, a implementação de aplicações para estes SOs é mais complexa, pois lidar com a troca de dados entre os vários componentes é muito mais complicado do que simplesmente agrupar todos num kernel monolítico.
![Page 59: Sistemas Operacionais – Aulas 7,8 e 9](https://reader035.fdocumentos.tips/reader035/viewer/2022062422/56814093550346895dac2794/html5/thumbnails/59.jpg)
Linus Torvalds – Kernel MonolíticosNo seu livro "Just For Fun" (Só por Prazer,
editora Campus) o Linus dedica várias passagens a defender a idéia de Kernel monolítico, chegando classificar a idéia de um microkernel como "uma estupidez".
![Page 60: Sistemas Operacionais – Aulas 7,8 e 9](https://reader035.fdocumentos.tips/reader035/viewer/2022062422/56814093550346895dac2794/html5/thumbnails/60.jpg)
Andrew Tanenbaum – Micro-KernelAndrew Tanenbaum, grande professor de
Sistemas Operacionais, escreveu um artigo sobre segurança e confiabilidade em ambientes críticos. Nesse artigo, descreveu que o paradigma de Micro-Kernels leva vantagem sobre o Kernel Monolítico.
![Page 61: Sistemas Operacionais – Aulas 7,8 e 9](https://reader035.fdocumentos.tips/reader035/viewer/2022062422/56814093550346895dac2794/html5/thumbnails/61.jpg)
MinixSO com kernel leve e pequeno, menos de
5000 linhas de códigoRoda em micros Pentium com 16Mb de
Ram e 50 Mb de HDDesenvolvido para rodar em:
PC de baixo-custo, Computador de $100 Sistemas embarcadosSistemas Educacionais
![Page 62: Sistemas Operacionais – Aulas 7,8 e 9](https://reader035.fdocumentos.tips/reader035/viewer/2022062422/56814093550346895dac2794/html5/thumbnails/62.jpg)
KERNEL HÍBRIDO É um kernel compacto, com apenas as
funções principais e alguns serviços não essenciais, que se comunica com módulos "servidores", por exemplo o serviço de impressão. Se o serviço de impressão dá erro o SO continua em pé, pois são separados. O desempenho é mais contido pois o Kernel tem que se comunicar com os "servidores" via mensagens, ou seja, são outros processos.
![Page 63: Sistemas Operacionais – Aulas 7,8 e 9](https://reader035.fdocumentos.tips/reader035/viewer/2022062422/56814093550346895dac2794/html5/thumbnails/63.jpg)
Kernel híbrido Define um kernel baseado em microkernel no qual
módulos externos podem executar operações em modo kernel (protegido), a fim de evitar trocas de contexto e melhorar o desempenho geral do sistema.
Porém sendo híbrido, tem a capacidade de agregar ou desagregar funcionalidades, sem perder performance ou estabilidade presentes na sua estrutura inicial, proporcionais a sua organização.
![Page 64: Sistemas Operacionais – Aulas 7,8 e 9](https://reader035.fdocumentos.tips/reader035/viewer/2022062422/56814093550346895dac2794/html5/thumbnails/64.jpg)
SO de Kernel Híbrido - ExemplosBeOS / Haiku Microsoft Windows NT Microsoft Windows XPXNU (núcleo do Darwin utilizado no Mac OS
X)
![Page 65: Sistemas Operacionais – Aulas 7,8 e 9](https://reader035.fdocumentos.tips/reader035/viewer/2022062422/56814093550346895dac2794/html5/thumbnails/65.jpg)
Esquema do Kernel Híbrido
Por outro lado, o fato de poucos serviços estarem dentro do kernel, normalmente gera uma latência (lag, delay, etc) que era a crítica principal aos micro-kernél.
![Page 66: Sistemas Operacionais – Aulas 7,8 e 9](https://reader035.fdocumentos.tips/reader035/viewer/2022062422/56814093550346895dac2794/html5/thumbnails/66.jpg)
SISTEMAS OPERACIONAIS E SEUS TIPOS DE KERNELKernel Monolítico: BSD; Linux; MS-DOS e
derivados, incluindo Windows 95, Windows 98 e Windows ME; Solaris.
Microkernel: Hurd; Minix; QNX.Kernel Híbrido: Windows NT; Windows
XP. MacOS
![Page 67: Sistemas Operacionais – Aulas 7,8 e 9](https://reader035.fdocumentos.tips/reader035/viewer/2022062422/56814093550346895dac2794/html5/thumbnails/67.jpg)
Tipos de Sistemas OperacionaisEm relação à sua capacidade de
processamento o SO pode ser classificado em:MONOTAREFA (MONOPROGRAMÁVEL). MULTITAREFA (MULTIPROGRAMÁVEL).
MULTIPROCESSAMENTO (MULTIPROGRAMAÇÃO). MULTITAREFA PREEMPTIVA. MULTITAREFA DE COOPERAÇÃO.
Múltiplos Processadores
![Page 68: Sistemas Operacionais – Aulas 7,8 e 9](https://reader035.fdocumentos.tips/reader035/viewer/2022062422/56814093550346895dac2794/html5/thumbnails/68.jpg)
Sistemas Operacionais68
Tipos de SistemasOperacionais
SistemasMonoprogramáveis / Monotarefa
SistemasMultiprogramáveis / Multitarefa
Sistemas comMúltiplosProcessadores
TIPOS DE SISTEMAS OPERACIONAIS
![Page 69: Sistemas Operacionais – Aulas 7,8 e 9](https://reader035.fdocumentos.tips/reader035/viewer/2022062422/56814093550346895dac2794/html5/thumbnails/69.jpg)
SO MONOTAREFAMONOTAREFA (MONOPROGRAMÁVEIS). Permite a realização de apenas uma tarefa de cada vez. Nesses sistemas, enquanto o programa aguarda a
ocorrência de um evento qualquer, o processador ficará ocioso (“idle”);
A memória ficará subutilizada, caso o programa não a ocupe totalmente e os periféricos também ficarão ociosos se não utilizados.
Os processos são executados em seqüência e um só inicia após o término do anterior.
Exemplo:Um dos mais famosos sistemas operacionais monotarefa
é o MS-DOS.
![Page 70: Sistemas Operacionais – Aulas 7,8 e 9](https://reader035.fdocumentos.tips/reader035/viewer/2022062422/56814093550346895dac2794/html5/thumbnails/70.jpg)
70
UCP
Memória
Dispositivosde E/S
Programa /Tarefa
![Page 71: Sistemas Operacionais – Aulas 7,8 e 9](https://reader035.fdocumentos.tips/reader035/viewer/2022062422/56814093550346895dac2794/html5/thumbnails/71.jpg)
71
SISTEMAS MULTIPROGRAMÁVEIS / MULTITAREFAMais complexos e mais eficientes;Vários programas dividem os mesmos
recursos;Aumento da produtividade dos seus
usuários e a redução de custos;
![Page 72: Sistemas Operacionais – Aulas 7,8 e 9](https://reader035.fdocumentos.tips/reader035/viewer/2022062422/56814093550346895dac2794/html5/thumbnails/72.jpg)
Sistemas Operacionais72
UCP
Memória
Dispositivosde E/S
Programa /Tarefa
Programa /Tarefa
Programa /Tarefa
Programa /Tarefa
![Page 73: Sistemas Operacionais – Aulas 7,8 e 9](https://reader035.fdocumentos.tips/reader035/viewer/2022062422/56814093550346895dac2794/html5/thumbnails/73.jpg)
Sistemas Operacionais73
SISTEMAS COM MÚLTIPLOS PROCESSADORES
Caracterizam por possui duas ou mais UCPs interligadas, trabalhando em conjunto;
O fator chave neste tipo de S.O. é a forma de comunicação entre as UCPs e o grau de compartilhamento da memória e dos dispositivos de I/O;
![Page 74: Sistemas Operacionais – Aulas 7,8 e 9](https://reader035.fdocumentos.tips/reader035/viewer/2022062422/56814093550346895dac2794/html5/thumbnails/74.jpg)
Sistemas Operacionais74
Sistemas com Múltiplos Processadores
SistemasFortementeAcoplado
SistemasFracamenteAcoplado
SistemasSimétricos
SistemasAssimétricos
SistemasOperacionaisde Rede
SistemasOperacionaisDistribuídos
![Page 75: Sistemas Operacionais – Aulas 7,8 e 9](https://reader035.fdocumentos.tips/reader035/viewer/2022062422/56814093550346895dac2794/html5/thumbnails/75.jpg)
WebibliografiaArquitetura de Sistemas Operacionais Francis Berenger Machado &
Luiz Paulo Maia 4a Edição - 2007 - Ed. LTC Francisco Jos´e da Silva e Silva Grupo de
Engenharia de Sistemas e Mobilidade (SisMo) Departamento de Informatica / UFMA http://www.sismo.deinf.ufma.br