Sistemas Operacionais

Documentos relacionados
Everson Scherrer Borges João Paulo de Brito Gonçalves

Sistemas Operacionais. Prof. André Y. Kusumoto

A memória é um recurso fundamental e de extrema importância para a operação de qualquer Sistema Computacional; A memória trata-se de uma grande

LABORATÓRIO DE SISTEMAS OPERACIONAIS. PROFª. M.Sc. JULIANA HOFFMANN QUINONEZ BENACCHIO

Processos e Threads (partes I e II)

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

Fundamentos de Sistemas Operacionais

Sistemas Operacionais

Sistemas Operacionais Processos e Threads

SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA

AULA 5 Sistemas Operacionais

SISTEMAS OPERACIONAIS. Apostila 01 Assunto: Tipos de Sistemas Operacionais UNIBAN

Arquitetura de Computadores. Sistemas Operacionais IV

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira

Introdução à Computação: Sistemas Operacionais II

Sistemas Operacionais

O que veremos nesta aula? Principais Aspectos de Sistemas Operacionais. Visão geral de um sistema computacional

Resumo. Prof. Alejandro - Introdução à Sistemas Operacionais Resumo Informativo, complemente o material assistindo as Aulas 19/08/2015 1

Introdução aos Sistemas

Sistemas Operacionais. Prof. André Y. Kusumoto

Sistemas Operativos. Threads. 3º ano - ESI e IGE (2011/2012) Engenheiro Anilton Silva Fernandes (afernandes@unipiaget.cv)

Sistema Operacional Correção - Exercício de Revisão

Sistema Operacional. Processo e Threads. Prof. Dr. Márcio Andrey Teixeira Sistemas Operacionais

Sistema Operacional. Prof. Leonardo Barreto Campos 1

SISTEMAS OPERACIONAIS 2007

Sistemas Operacionais Introdução. Professora: Michelle Nery

Sistemas Operacionais

Prof.: Roberto Franciscatto. Capítulo 1.2 Aspectos Gerais

Apresentação. Ementa da Disciplina. Objetivo da Disciplina. DCA-108 Sistemas Operacionais

Introdução a Computação

Introdução aos Sistemas Operacionais. Computador = hardware + software. Como é formado o meu computador? E como estes componentes se comunicam?

Introdução aos Sistemas Operativos

Sistemas Operacionais

Sistemas Operacionais

Organização de Computadores 1

Programação Concorrente Processos e Threads

Infra-Estrutura de Software. Introdução. (cont.)

Sistemas Operacionais. Professor Leslier Soares Corrêa

Resumo até aqui. Gerenciamento Proteção Compartilhamento. Infra-estrutura de Software

Sistemas Operacionais

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 02 - Estrutura dos Sistemas Operacionais. Cursos de Computação

Organização e Arquitetura de Computadores

Prof.: Roberto Franciscatto. Capítulo 1.1 Introdução

Classificação de SO (Sistemas Operacionais) Técnico de Informática 2º. Módulo Profa. Madalena Pereira da Silva

Introdução a Informática. Prof.: Roberto Franciscatto

Gerência de Processador

Prof. Antonio Fundamentos de Sistemas Operacionais UNIP/2015

Introdução aos Computadores

UFRJ IM - DCC. Sistemas Operacionais I. Unidade I Introdução. 11/02/2014 Prof. Valeria M. Bastos

Disciplina: Sistemas Operacionais - CAFW-UFSM Professor: Roberto Franciscatto

1.2 Tipos de Sistemas Operacionais

Gerência do Processador

BARRAMENTO DO SISTEMA

Capacidade = 512 x 300 x x 2 x 5 = ,72 GB

10 DICAS DE TECNOLOGIA PARA AUMENTAR SUA PRODUTIVIDADE NO TRABALHO

OCOMON PRIMEIROS PASSOS

Arquitetura de Computadores. Introdução aos Sistemas Operacionais

Armazenamento Secundário. SCE-183 Algoritmos e Estruturas de Dados II

EXEMPLO: Processo para atualização da hora Processo para monitoramento da necessidade de proteção de tela. Figura Exemplo

Virtual Box. Guia. Instalação E Utilização. Criado por Wancleber Vieira wancleber.vieira@ibest.com.br

Tipos de sistemas operacionais

UFRJ IM - DCC. Sistemas Operacionais I

Sistemas Operacionais

Arquitetura e Organização de Computadores

Multiplexador. Permitem que vários equipamentos compartilhem um único canal de comunicação

Processamento de Dados

Gerenciamento de Memória

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar

Sincronização e Comunicação entre Processos. Adão de Melo Neto

Introdução. O que vimos. Infraestrutura de Software. (cont.) História dos Sistemas Operacionais. O que vimos 12/03/2012. Primeira geração:

Considerações sobre o Disaster Recovery

Notas da Aula 17 - Fundamentos de Sistemas Operacionais

Sistemas Operacionais Gerência de Dispositivos

Sistemas Operacionais

Prof.: Roberto Franciscatto. Capítulo 1 Introdução

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia

Visão Geral de Sistemas Operacionais

Sistemas Distribuídos

Sistemas Operacionais 2014 Introdução. Alexandre Augusto Giron

Tecnologia da Informação. Prof Odilon Zappe Jr

Aula 3. Sistemas Operacionais. Prof: Carlos Eduardo de Carvalho Dantas

Sistema Operacional Ex: Complexo Computador multiusuário com vários terminais Tem que administrar todos os pedidos de usuários e assegurar que eles

SISTEMAS OPERACIONAIS. George Gomes Cabral

SISTEMAS OPERACIONAIS

Gerenciamento de memória. Carlos Eduardo de Carvalho Dantas

Ministério da Educação Secretaria de Educação Profissional e Tecnológica Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Sul

Backup. Permitir a recuperação de sistemas de arquivo inteiros de uma só vez. Backup é somente uma cópia idêntica de todos os dados do computador?

Sistemas Operacionais. Prof. André Y. Kusumoto

Sistemas Operacionais

Arquitetura de Computadores. Tipos de Instruções

Sistemas Operacionais

SISTEMA DE ARQUIVOS. Instrutor: Mawro Klinger

Arquitetura dos Sistemas Operacionais

Disciplina: Introdução à Informática Profª Érica Barcelos

Transcrição:

7 Sistemas Operacionais 7.1 Fundamentos da ciência da computação Cengage Learning

Objetivos 7.2 Compreender o papel do sistema operacional. Compreender o processo de inicialização para carregar o sistema operacional na memória. Listar os componentes de um sistema operacional. Discutir o papel do gerenciador de memória. Discutir o papel do gerenciador de processo. Discutir o papel do gerenciador de dispositivos. Discutir o papel do gerenciador de arquivos em um sistema operacional. Entenda as principais características dos três sistemas operacionais comuns: UNIX, Linux e Windows

7.3 Computador é um sistema composto de dois importantes componentes: hardware e software. Hardware é o equipamento físico, e software, o conjunto de programas que permite que o hardware faça seu trabalho. O software é dividido em duas amplas categorias: o sistema operacional e os programas da aplicação (aplicativos).

7.4 Figura 7.1 Sistema computacional

7-1 INTRODUÇÃO Um sistema operacional é complexo, portanto é difícil dar uma definição simples e universal. Em vez disso, aqui estão algumas definições comuns: Um sistema operacional é uma interface entre o hardware de um computador e o utilizador (programas ou seres humanos). Um sistema operacional é um programa (ou um conjunto de programas) que facilita a execução de outros programas. Um sistema operacional atua como um gerente geral supervisionando a atividade de cada componente no sistema de computador. 7.5

i Um sistema operacional é uma interface entre o hardware de um computador e o utilizador (Programas ou humanos) que facilita a execução de outros programas e o acesso a recursos de hardware e software Dois grandes objetivos do projeto de um sistema operacional são: Uso eficiente de hardware. A facilidade de utilização dos recursos. 7.6

Processo de inicialização O sistema operacional, com base nas definições acima, fornece suporte para outros programas. Por exemplo, é responsável por carregar outros programas na memória para execução. No entanto, o próprio sistema operacional é um programa, que precisa de ser carregado para a memória e ser executado. Como este dilema é resolvido? A solução é um processo em duas fases. 7.7

Processo de inicialização Uma pequena seção de memória é feita de ROM e possui uma pequena programa chamado o programa de inicialização. Quando o computador é ativada, o contador de CPU está definido para a primeira instrução deste programa de inicialização e executa as instruções contidas neste programa. Quando o carregamento for feito, o contador de programa está definido para a primeira instrução do sistema operacional na RAM. 7.8

7.9 Figura 7.2 O processo de bootstrap

7-2 EVOLUÇÃO Sistemas de lote (batch) Sistemas operacionais lote foram projetados na década de 1950 para controlar computadores mainframe. Os computadores eram grandes máquinas que utilizavam cartões perfurados para a entrada, impressoras de linha para saída e unidades de fita para mídia de armazenamento secundário. Cada programa a ser executado foi chamado de job. O programador que quisesse executar um trabalho envia uma solicitação para o sistema operacional. 7.10

7-2 EVOLUÇÃO 7.11 http://www.computerhistory.org/revolution/mainframe-computers/7/166/662

Sistemas de compartilhamento de tempo Para utilizar com eficiência os recursos de um sistema computacional, foi criada a multiprogramação. A ideia é manter vários jobs (trabalhos) na memória, ao mesmo tempo, e somente atribuir um recurso para um job que esteja precisando, com a condição de que o recurso esteja disponível. Multiprogramação trouxe a ideia de compartihamento de tempo: os recursos podem ser compartilhados entre diferentes jobs. Como o computador é muito mais rápido que um humano, cada usuário tem a impressão de que todo o sistema o está servindo exclusivamente. 7.12

Sistemas pessoais Quando os computadores pessoais foram desenvolvidos, havia necessidade de um sistema operacional para esse novo tipo de computador. Foram criados os sistemas operacionais de um único usuário (monousuário), como o DOS (Disk Operating System [Sistema Operacional em Disco]). Sistemas paralelos A necessidade de mais velocidade e eficiência levou à concepção de sistemas paralelos: múltiplas CPUs na mesma máquina. Cada CPU pode ser utilizada para servir um programa, ou parte de um, o que significa que muitas tarefas podem ser realizadas paralelamente, em vez de serial. Os sistemas operacionais exigidos para isso são mais complexos do que aqueles compatíveis com CPUs individuais. 7.13

Sistemas distribuídos As operações em rede e inter-redes criaram uma nova dimensão nos sistemas operacionais. Um job que foi previamente feito para um computador pode agora ser compartilhado entre computadores, que podem estar a milhares de quilômetros de distância. Os sistemas distribuídos combinam recursos da geração anterior com novas exigências, como o controle de segurança. Sistemas de tempo real Espera-se que um sistema de tempo real realize uma tarefa dentro de uma restrição de tempo específica. Esses sistemas são utilizados com aplicações de tempo real, que monitoram, respondem ou controlam processos ou ambientes externos. 7.14

7-3 COMPONENTES Um sistema operacional precisa gerenciar diferentes recursos em um sistema computacional. Isso se assemelha a uma organização com diversos gerentes no nível superior. Cada gerente é responsável por gerir seu departamento, mas também precisa cooperar com outros e coordenar atividades. Um moderno sistema operacional tem, pelo menos, quatro componentes gerenciadores: de memória, de processos, de dispositivos e de arquivos. 7.15

7.16 Figura 7.3 Componentes de um sistema operacional

Interface com o usuário Cada sistema operacional tem uma interface com o usuário, um programa que aceita solicitações dos usuários (processos) e as interpreta para o restante do sistema operacional. Esta interface, em alguns sistemas operacionais, como UNIX, é chamada shell. Em outros sistemas, é chamada janela, para denotar que esse sistema é dirigido por menu e tem um componente GUI (graphical user interface [interface gráfica do usuário]). 7.17

Gerenciador de memória Embora o tamanho da memória dos computadores tenha aumentado enormemente nos últimos anos, isso também aconteceu com o tamanho dos programas e dos dados a serem processados. A alocação de memória deve ser gerenciada para evitar que aplicações tenham sua memória esgotada. Os sistemas operacionais podem ser divididos em duas amplas categorias de gerenciamento de memória: monoprogramação e multiprogramação. 7.18

Monoprogramação Na monoprogramação, a maior parte da capacidade de memória é dedicada a um único programa; somente uma pequena parte é necessária para manter o sistema operacional. Nessa configuração, o programa inteiro está na memória para execução. Quando o programa termina sua execução, a área do programa é ocupada por outro. 7.19 Figura 7.4 Monoprogramação

Multiprogramação Na multiprogramação, há mais de um programa na memória ao mesmo tempo, e eles são executados concorrentemente, com a CPU alternando rapidamente entre os programas. 7.20 Figura 7.5 Multiprogramação

7.21 Figura 7.6 Categorias de multiprogramação

Particionamento No particionamento a memória é dividida em seções de tamanho variável. Cada seção da partição mantém um programa. A CPU alterna entre programas, começando com um, executando algumas instruções, até que encontre uma operação de entrada/saída ou que se esgote o tempo alocado para aquele programa. 7.22 Figura 7.7 Particionamento

Particionamento A CPU, então, grava o endereço da localização de memória em que a última instrução foi executada e se move para o programa seguinte. O mesmo procedimento é repetido com o segundo programa. Depois que todos os programas foram atendidos, a CPU volta para o primeiro programa. Os níveis de prioridade também podem ser utilizados para controlar o quanto de tempo de CPU é alocado para cada programa. 7.23 Figure 7.7 Partitioning

Paginação A paginação melhora a eficiência do particionamento, pois a memória é divida em seções de tamanhos iguais, chamadas frames. Os programas também são divididos em seções de igual tamanho, chamadas páginas. 7.24 Figura 7.8 Paginação

Paginação Se um programa tem três páginas, ele ocupa três frames na memória. O programa não precisa ser contíguo na memória; duas páginas consecutivas podem ocupar frames não contíguos na memória. 7.25 Figure 7.8 Paging

Paginação A vantagem da paginação sobre o particonamento é que dois programas, cada um deles utilizando três frames não contíguos, podem ser substituídos por um programa que precisa de seis frames. 7.26 Figura 7.8 Paginação

Paginação por demanda A paginação não requer que o programa esteja em localizações de memória contíguas, mas ainda exige que o programa inteiro esteja na memória para execução. A paginação por demanda eliminou essa última restrição. Figura 7.9 Paginação por demanda 7.27

Segmentação por demanda Em segmentação por demanda, o programa é dividido em segmentos que correspondem à visão do programador. Eles são carregados na memória, executados e substituídos por outro módulo do mesmo ou de um programa diferente. Figura 7.10 Segmentação por demanda 7.28

Memória virtual A paginação por demanda e a segmentação por demanda significam que: Quando um programa está sendo executado, parte do programa está na memória e parte está no disco. Por exemplo, uma memória de 10 MB de tamanho pode executar 10 programas, cada um com tamanho de 3 MB, totalizando 30 MB. A qualquer momento, apenas 10 MB do 10 programas estão na memória e 20 MB estão no disco. Existe, portanto, um tamanho real de memória igual a 10 MB, mas um tamanho de memória virtual igual a 30 7.29 MB.

7.30 Figura 7.11 Memória virtual

Gerenciador de processos Uma segunda função de um sistema operacional é o gerenciamento de processos, mas, antes de comentar esse conceito, precisamos definir alguns termos. Programa, job, e processo Programa é um conjunto de instruções, não ativo, armazenado em disco (ou fita), que pode ou não se transformar em um job. Um programa se torna um job no momento em que é selecionado (preparado) para execução, e assim permanece até o momento em que a execução é concluída, quando se torna novamente um programa. Processo é um programa em execução, ou seja, um programa que iniciou, ma não foi concluído. 7.31

Diagramas de estado A relação entre um programa, um job e um processo se torna mais clara se consideramos como um programa se torna um job e como um job se torna um processo. Isso pode ser ilustrado com um diagrama de estados, que mostra os diferentes estados de cada uma dessas entidades. 7.32

Figura 7.12 Diagramas de estados representando limites entre programa, job 7.33 e processos

Escalonadores Para mover um job ou um processo de um estado para outro, o gerenciador de processos utiliza dois escalonadores: o de jobs e o de processos. O escalonador de jobs move um job do estado de preparação para pronto ou do estado de execução para concluído. 7.34 Figura 7.13 Escalonador de jobs

Escalonadores O escalonador de processos move um processo do estado de execução para o de espera, em que o processo espera que algum evento ocorra. Move o processo do estado de espera para pronto quando o evento ocorreu, e move do estado de execução para pronto se o intervalor de tempo do processo tiver se esgotado. Figura 7.14 Escalonador de processos 7.35

Filas de espera Nosso diagrama de estado mostra um job ou processo se movendo de um estado para outro. Na realidade, existem muitos jobs e processos competindo entre si pelos recursos do computador. Para lidar com múltiplos processos e jobs, o gerenciador de processos utiliza filas (listas de espera). 7.36

Filas de espera Um bloco de controle de job ou bloco de controle de processo é associado a cada job ou processo. Esse é um bloco de memória que armazena informações sobre um job ou processo. O gerenciador de processos armazena o bloco de controle de job ou processo nas filas, em vez do próprio job ou processo em si. 7.37

7.38 Figura 7.15 Filas para gerenciamento de processos

Sincronização de processos A ideia geral do gerenciamento de processos é o sincronizar diferentes processos com diferentes recursos. Sempre que recursos podem ser utilizados por mais de um usuário (ou processo, neste caso) podemos ter duas situações problemáticas: deadlock e starvation. 7.39

i Figura 7.16 Deadlock O deadlock ocorre quando o sistema operacional não define restrições de recursos para os processos. 7.40

7.41 Figura 7.17 Deadlock em uma ponte

Deadlock Existem quatro condições necessárias para que ocorra um deadlock (pré-condições necessárias mas não suficientes): Exclusão mútua. Somente um processo pode manter um recurso. Retenção de recursos. Um processo mantém um recurso, mesmo que não possa utilizá-lo até que outros recursos estejam disponíveis. Sem preempção. O sistema operacional não pode realocar um recurso temporariamente. Espera circular. Todos os processos e recursos envolvidos formam um laço. Para preveni-lo ou evitá-lo: não permitir que uma dessas condições ocorra. 7.42

Starvation Starvation é o oposto de deadlock. Pode ocorrer quando o sistema operacional define muitas restrições de recursos para um processo. Por exemplo, imagine um sistema operacional que especifica que um processo deve ter em sua posse os recursos exigidos, antes que possa ser executado. 7.43

7.44 Figura 7.18 Starvation

Starvation Um clássico problema relacionado a starvation foi introduzido por Edsger Dijkstra. Cinco filósofos estão sentados ao redor de uma mesa circular. Cada um deles precisa de dois hashis (os tradicionais pauzinhos de madeira) para comer uma tigela de arroz. No entanto, um ou ambos hashis podem ser utilizados por alguém sentado a seu lado. É possível que um filósofo fique em starvation (faminto) se dois hashis não estiverem disponíveis ao mesmo tempo. 7.45

i Figura 7.19 O problema do jantar dos filósofos Starvation é o oposto de deadlock. Pode ocorrer quando o sistema operacional define muitas restrições de recursos para um processo. 7.46

Gerenciador de dispositivos O gerenciador de dispositivos, ou gerenciador de entrada/saída, é responsável pelo acesso a dispositivos de entrada/saída. Existem limitações quanto ao número e a velocidade dos dispositivos de entrada/saída em um sistema computacional. Monitora cada dispositivo de entrada/saída constantemente para garantir que esteja funcionando de forma apropriada. Mantém uma fila para cada dispositivo de entrada/saída ou uma ou mais filas para dispositivos similares. Controla as diferentes políticas de acesso a dispositivos de entrada/saída. 7.47

Gerenciador de arquivos Os sistemas operacionais utilizam um gerenciador de arquivos para controlar o acesso a arquivos. O gerenciador de arquivo: controla o acesso a arquivos (ler, escrever, e executar). supervisiona a criação, exclusão e modificação dos arquivos. pode controlar a nomeação de arquivos. supervisiona o armazenamento de arquivos: como e onde são armazenados. é responsável pelo arquivamento e pelos backups. 7.48