EVERSON SCHERRER BORGES. Sistemas Operacionais



Documentos relacionados
Sistemas Operacionais

Sistemas Operacionais Introdução. Professora: Michelle Nery

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

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

1.2 Tipos de Sistemas Operacionais

Sistemas Operacionais

SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA

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

Sistemas Operacionais. Prof. André Y. Kusumoto

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

Sistemas Operacionais

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

7 Processos. 7.1 Introdução

Sistemas Operacionais. INTRODUÇÃO Prof. Rafael Alberto Vital Pinto FACSUL/CESUR

Sistemas Operacionais

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

Sistemas Operacionais

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

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

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

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

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

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

Sistemas Operacionais

Tipos de sistemas operacionais

Sistemas Operacionais Processos e Threads

Fundamentos de Sistemas Operacionais. Processos. Prof. Edwar Saliba Júnior Março de Unidade Processos

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

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

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 04 - Concorrência. Cursos de Computação

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

SISTEMAS OPERACIONAIS

Sistemas Operacionais

Sistemas Operacionais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Gerência do Processador

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

Sistemas Operacionais Gerência de Dispositivos

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

Introdução aos Sistemas

UFRJ IM - DCC. Sistemas Operacionais I

Gerência de Processador

Fundamentos de Sistemas Computacionais Introdução

A Evolução dos Sistemas Operacionais

SO - Conceitos Básicos. Introdução ao Computador 2010/01 Renan Manola

GESTÃO DE SISTEMAS OPERACIONAIS II

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

Arquitetura de Computadores para. Sistemas Operacionais. Sistemas Operacionais. Sumário

Prof. Esp. Lucas Cruz

3. Arquitetura Básica do Computador

Arquitetura de Sistemas Operacionais

Sistemas Operacionais. Professor Leslier Soares Corrêa

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

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar

Sistemas Operacionais 2014 Introdução. Alexandre Augusto Giron

10 DICAS DE TECNOLOGIA PARA AUMENTAR SUA PRODUTIVIDADE NO TRABALHO

Sistemas Operacionais Carlos Eduardo Portela Serra de Castro

Arquitetura de Computadores. Introdução aos Sistemas Operacionais

SISTEMAS OPERACIONAIS. Prof. André Dutton

Profs. Deja e Andrei

Sistemas Operacionais

SISTEMAS OPERACIONAIS 2007

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource Rev: 02

AULA 5 Sistemas Operacionais

Sistema Operacional. Prof. Leonardo Barreto Campos 1

Sistemas Distribuídos

Sistemas Operacionais

AULA 3 Introdução ao Software

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 1. Cursos de Computação

Introdução a Computação

Sistemas Operacionais

Processos e Threads (partes I e II)

11/3/2009. Software. Sistemas de Informação. Software. Software. A Construção de um programa de computador. A Construção de um programa de computador

Informática, Internet e multimídia

ADMINISTRAÇÃO DE SISTEMA OPERACIONAL DE REDE (AULA 1)

Escalonamento no Linux e no Windows NT/2000/XP

Sistemas de Lotes (2) Sistemas de Lotes (3) Layout da MP em Sistemas de Lotes. Minimizar o tempo de resposta

Sistemas Operacionais. Prof. André Y. Kusumoto

PROJETO INFORMÁTICA NA ESCOLA

Sistemas Operacionais

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 2. Cursos de Computação

Processos. Adão de Melo Neto

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

LINUX. Lapro I Profa. Fernanda Denardin Walker. - Aula 2 - Material adaptado de: Isabel Mansour, Marcia Moraes e Silvia Moraes SISTEMA OPERACIONAL

APOSTILA LINUX EDUCACIONAL

Apresentação da disciplina. Sistemas Operacionais I N. A disciplina. O Professor. Áreas de atuação na pesquisa. Referências bibliográficas básicas

Prof. Antonio Fundamentos de Sistemas Operacionais UNIP/2015

Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho

MANUTENÇÃO DE MICRO. Mário Gomes de Oliveira

Sistema Operacional LINUX

Fundamentos de Sistemas Operacionais

Engenharia de Software III

Processamento de Dados

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

Um Driver NDIS Para Interceptação de Datagramas IP

Transcrição:

EVERSON SCHERRER BORGES Licenciatura em Informática Sistemas Operacionais Cachoeiro de Itapemirim IFES/CEAD 2011

Instituto Federal do Espírito Santo Governo Federal Ministro de Educação Fernando Haddad Instituto Federal do Espírito Santo (Ifes) Reitor Dênio Rebello Arantes Pró-Reitora de Ensino Cristiane Tenan Schlittler dos Santos Diretora do CEAD Centro de Educação a Distância Yvina Pavan Baldo Coordenadores da UAB Universidade Aberta do Brasil Yvina Pavan Baldo Maria das Graças Zamborlini Curso de Tecnologia em Análise e Desenvolvimento de Sistemas Coordenação de Curso Jonathan Toczek Souza Designer Instrucional Edmundo Rodrigues Junior Professor Especialista/Autor Everson Scherrer Borges Catalogação da fonte: Rogéria Gomes Belchior - CRB 12/417 S593 Borges, Everson Scherrer Sistemas operacionais / Everson Scherrer Borges. 2011. Cachoeiro de Itapemirim: Ifes, 2009. 100p. : il Título. ISBN 1. Informática - Sistemas operacionais. 2. Sistemas operacionais - Processos. I. II. Título DIREITOS RESERVADOS Instituto Federal do Espírito Santo (Ifes) Avenida Rio Branco, nº 50 Santa Lúcia - CEP. 29056-255 Vitória ES - Telefone: 3227-5564 Créditos de autoria da editoração Capa: Juliana Cristina da Silva Projeto gráfico: Juliana Cristina e Nelson Torres Iconografia: Nelson Torres Editoração eletrônica: CEAD Revisão de texto: Esther Ortlibe Faria de Almeida COPYRIGHT É proibida a reprodução, mesmo que parcial, por qualquer meio, sem autorização escrita dos autores e do detentor dos direitos autorais.

Olá, Aluno(a)! É um prazer tê-lo(a) conosco. O Ifes oferece a você, em parceria com as Prefeituras e com o Governo Federal, o Curso de Licenciatura em Informática, na modalidade a distância. Apesar de este curso ser ofertado a distância, esperamos que haja proximidade entre nós, pois, hoje, graças aos recursos da tecnologia da informação (e-mails, chat, videoconferênca, etc.), podemos manter uma comunicação efetiva. É importante que você conheça toda a equipe envolvida neste curso: coordenadores, professores especialistas, tutores a distância e tutores presenciais. Assim, quando precisar de algum tipo de ajuda, saberá a quem recorrer. Na EaD - Educação a Distância - você é o grande responsável pelo sucesso da aprendizagem. Por isso é necessário que se organize para os estudos e para a realização de todas as atividades, nos prazos estabelecidos, conforme orientação dos Professores Especialistas e Tutores. Fique atento às orientações de estudo que se encontram no Manual do Aluno! A EaD, pela sua característica de amplitude e pelo uso de tecnologias modernas, representa uma nova forma de aprender, respeitando, sempre, o seu tempo. Desejamos a você sucesso e dedicação!

ICONOGRAFIA Veja, abaixo, alguns símbolos utilizados neste material para guiá-lo em seus estudos Fala do Professor Conceitos importantes. Fique atento! Atividades que devem ser elaboradas por você, após a leitura dos textos. Indicação de leituras complemtares, referentes ao conteúdo estudado. Destaque de algo importante, referente ao conteúdo apresentado. Atenção! Reflexão/questionamento sobre algo importante referente ao conteúdo apresentado. Espaço reservado para as anotações que você julgar necessárias.

Introdução Sistemas Operacionais 9 1.1 Introdução 9 1.1.1 Facilidade de acesso aos recursos do sistema 10 1.1.2 Compartilhamento de recursos de forma organizada e protegida 10 1.2 Máquinas de Níveis 12 1.3 Ativação e Desativação do Sistema 13 Tipos de Sistemas Operacionais 17 2.1 Introdução 17 2.2 Sistemas Monoprogramáveis / Monotarefa 18 2.3 Sistemas Multiprogramáveis / Multitarefa 19 2.3.1 Sistemas Batch 21 2.3.2 Sistemas de Tempo Compartilhado 21 2.3.3 Sistemas de Tempo Real 21 2.4 Sistemas Com Multiprocessadores 22 2.4.1 Sistemas Fortemente Acoplados 23 2.4.1.1 Sistemas Assimétricos 24 2.4.1.2 Sistemas Simétricos 25 2.4.2 Sistemas Fracamente Acoplados 26 2.4.2.1 Sistemas Operacionais de Rede 27 2.4.2.2 Sistemas Operacionais Distribuídos 28 Processos 31 3.1 Introdução 31 3.2 Gerenciamento de Programas 33 3.3 Estados do Processo 35 3.3.1 Estados de um processo Ativo 35 3.3.1.1 Executando (running) 35 3.3.1.2 Apto ou Pronto (ready) 35 3.3.1.3 Bloqueado ou Espera (wait) 36 3.4 Estados de Criação e Destruição de um Processo 36 3.5 Transições de Estado do Processo 37 3.5.1 Apto J ^ Executando 38 3.5.2 Execução J ^ Apto 38

3.5.3 Execução J ^ Bloqueado 38 3.5.4 Bloqueado ^J Apto 39 3.6 Transições de Estado com Swapping 39 3.7 Processos Independentes, Subprocessos e Threads 40 3.7.1 Processos Foreground e Background e Pipes 42 3.7.1.1 Processo Foreground 42 3.7.1.2 Processo Background 42 3.7.1.3 Pipe entre Processos 43 3.8 Processos do Sistema Operacional 43 3.8.1 Processos CPU-bound e I/O-bound 44 3.9 Sinais 45 Sistemas de Arquivos 49 4.1 Introdução 49 4.2 Organização de um Sistema de Arquivos 50 4.3 Propriedades dos Arquivos 51 4.4 Organização dos Arquivos 53 4.5 Nomeação dos Arquivos e Diretórios 55 4.6 Metadados dos Arquivos 55 4.7 Classificação dos Sistemas de Arquivos 56 Gerência de Memória 59 5.1 Introdução 59 5.2 Proteção da Memória 60 5.3 Organização da Memória 61 5.4 Limpeza da Memória 62 5.5 Compartilhamento da Memória 62 5.6 Memória Virtual 63 5.7 Memória Paginada 64 5.8 Memória Segmentada 65 Gerência de Dispositivos 67 6.1 Introdução 67 6.2 Driver de dispositivo 67 6.3 Dispositivos plug and play 71 6.4 Drives no Windows e Linux 71

APRESENTAÇÃO Caro Aluno, meu nome é EVERSON SCHERRER BORGES, responsável pela disciplina Sistemas Operacionais. Atuo como professor do IFES há três anos. Sou graduado em Sistemas de Informação (2004) pelo Centro Universitário São Camilo - Espírito Santo. Atualmente, sou responsável pelas disciplinas de Introdução a Redes, Implementação de Redes, Projetos de Redes e Sistemas Operacionais. Minhas áreas de interesse são Redes de Computadores e Sistemas Operacionais. Nesta disciplina, você conhecerá o que é um sistema operacional e suas funcionalidades, identificará os diferentes tipos de sistemas operacionais, compreenderá como ocorre a concorrência em sistemas operacionais, entenderá a estrutura e organização da estrutura do sistema operacional e conhecerá os sistemas de arquivos. A disciplina de Introdução à Informática auxiliará no entendimento de alguns conceitos que serão abordados nesta disciplina, apesar de não serem necessários conhecimentos prévios acerca dos assuntos aqui abordados. O objetivo deste material é auxiliá-lo no estudo da disciplina Sistemas Operacionais, por meio de dicas e sugestões que destacam os pontos mais importantes a serem estudados. Aqui, você encontrará conceitos com os quais trabalharemos ao longo de todo o curso, o que não dispensa a utilização dos outros livros que fazem parte da bibliografia sugerida. Em geral, para ser bem sucedido neste curso, é importante que faça os exercícios e estude regularmente, evitando-se, dessa forma, o acúmulo de conteúdo. Estudar só é bom quando se estuda o que gosta. Portanto, passe a gostar de Sistemas Operacionais. Sábio é aquele que conhece os limites da própria ignorância. (Sócrates) Assim, espero que alcance o sucesso! Prof. Everson Scherrer Borges

Introdução Sistemas Operacionais Caro aluno, iniciaremos nossa primeira aula com a introdução aos sistemas operacionais (SO). Este primeiro capítulo contém os conceitos básicos para o entendimento de Sistemas Operacionais. Em geral, essa disciplina é acumulativa, ou seja, a compreensão dos conceitos estudados em um capítulo é a base para o entendimento dos capítulos posteriores. Um gênio é uma pessoa de talento que faz toda a lição de casa. (Thomas A. Edison) Bom estudo! 1.1 Introdução Os sistemas operacionais possuem duas funções básicas que se apresentam de extrema importância para o entendimento do sistema operacional; sendo assim, antes de estudarmos os conceitos básicos, veremos suas funções. Por mais complexo que possa parecer, um sistema operacional é um grupo integrado de programas que permitem a comunicação entre o computador e o usuário. Sua principal função é controlar o funcionamento do computador, como um gerente dos diversos recursos disponíveis no sistema. O sistema operacional é o primeiro programa que o computador executa no momento em que é ligado e, a partir de então, só para de funcionar quando o computador é desligado. O sistema operacional reveza sua execução com a de outros programas, que trabalham em conjunto, como se estivesse organizando e orquestrando todo o processo computacional.

10 Everson Scherrer Borges O nome sistema operacional não é único para designar esse conjunto de programas. Nomes como monitor, executivo, supervisor ou controlador possuem, normalmente, o mesmo significado. [1] Um sistema operacional, porém, possui inúmeras funções e resumimos essas funções, basicamente, em duas, que são descritas a seguir. 1.1.1 Facilidade de acesso aos recursos do sistema Um sistema de computação possui, normalmente, diversos componentes, como terminais, impressoras, discos e fitas. Quando utilizamos esses dispositivos, não nos preocupamos com a maneira como é realizada a comunicação entre eles e o processador, nem nos preocupamos com os inúmeros detalhes envolvidos. Para a maioria de nós, uma operação habitual, como a leitura de um arquivo em disquete, por exemplo, pode parecer simples. Na realidade, existe um conjunto de rotinas especiais, controladas pelo sistema operacional, responsável por acionar a cabeça de leitura e gravação da unidade de disco, posicionar essa cabeça na trilha e no setor onde estão os dados, transferir os dados do disco para a memória e, finalmente, informar ao programa a chegada dos dados. [3] O sistema operacional serve de interface (intermediário) entre os usuários e os recursos disponíveis no sistema, tornando esta comunicação transparente e permitindo ao usuário um trabalho mais eficiente e com menores chances de erros (Figura 1). O conceito de ambiente simulado, criado pelo sistema operacional, é denominado máquina virtual (virtual machine) e está presente, de alguma forma, na maioria dos sistemas atuais. 1.1.2 Compartilhamento de recursos de forma organizada e protegida Quando pensamos em sistema multiusuário, onde vários usuários podem estar compartilhando os mesmos recursos, como memória e discos, por exemplo, é necessário que todos tenham oportunidade de ter acesso a esses recursos de forma que um usuário não interfira no trabalho do outro.[1]

Sistemas Operacionais 11 Se imaginarmos que uma impressora possa ser utilizada por vários usuários do sistema, deverá existir algum controle para impedir que a impressão de um usuário interrompa a impressão de outro. É o sistema operacional o responsável por permitir o acesso concorrente a cada recurso, de forma organizada e protegida, dando ao usuário a impressão de ser o único a utilizar tal recurso. O compartilhamento de recursos permite, também, a diminuição de custos, na medida em que mais de um usuário possa utilizar as mesmas facilidades concorrentemente, como discos, impressoras, linhas de comunicação, etc. Não é apenas em sistemas multiusuários que o sistema operacional é importante. Se pensarmos que um computador pessoal nos permite executar várias tarefas, como imprimir um documento, copiar um arquivo pela internet ou processar uma planilha, o sistema operacional deve ser capaz de controlar a execução concorrente de todas essas tarefas. A Figura 1 mostra uma visão do sistema operacional como interface entre os usuários e os recursos do sistema. Programadores e Analistas usuários Aplicativos Usuários Sistema Operacional Hardware Figura 1: Visão do sistema operacional como interface entre os usuários e os recursos do sistema. Fonte: Machado e Maia, 2004. Adaptação.

12 Everson Scherrer Borges 1.2 Máquinas de Níveis Um computador é visto somente como um gabinete composto de circuitos eletrônicos, cabos e fontes de alimentação (hardware), não tem nenhuma utilidade. É através de programas (software) que o computador consegue armazenar dados em discos, imprimir relatórios, gerar gráficos, realizar cálculos, entre outras funções. O hardware é o responsável pela execução das instruções de um programa, com a finalidade de realizar alguma tarefa. Uma operação efetuada pelo software pode ser implementada em hardware, enquanto uma instrução executada pelo hardware pode ser simulada via software. Esta decisão fica a cargo do projetista do computador em função de aspectos como custo, confiabilidade e desempenho. Tanto o hardware como o software são logicamente equivalentes, interagindo de uma forma única para benefício do usuário.[3] Nos primeiros computadores, a programação era realizada em painéis, através de fios, exigindo um grande conhecimento do hardware e de sua linguagem de máquina. Mas isso era uma grande dificuldade para os programadores da época. Então, a solução para esse problema foi o surgimento do sistema operacional, que tornou a interação entre usuário e computador mais simples, confiável e eficiente. A partir desse acontecimento, não existiu mais a necessidade de o programador se envolver com a complexidade do hardware para poder trabalhar. Ou seja, a parte física do computador tornou-se transparente para o usuário, conforme podemos observar na Figura 2. [1] usuário Sistema Operacional Hardware Figura 2 - Visão do computador pelo usuário Fonte: Machado e Maia, 2004. Adaptação.

Sistemas Operacionais 13 Partindo do princípio acima mencionado, podemos considerar o computador como uma máquina de níveis ou camadas, onde inicialmente existem dois níveis: o nível 0 (hardware) e o nível 1 (sistema operacional). Dessa forma, o usuário pode enxergar a máquina como sendo apenas o sistema operacional, ou seja, como se o hardware não existisse. Essa visão modular e abstrata é chamada máquina virtual.[1] Na realidade, um computador não possui apenas dois níveis, e sim tantos níveis quantos forem necessários para adequar ao usuário suas diversas aplicações. Quando o usuário está trabalhando em um desses níveis, não necessita da existência das outras camadas acima ou abaixo de sua máquina virtual. Ultimamente, a maior parte dos computadores possui uma estrutura como a mostrada na Figura 3, podendo conter mais ou menos camadas. A linguagem utilizada em cada um desses níveis é diferente, variando da mais elementar (baixo nível) à mais sofisticada (alto nível). Aplicativos Utilitários Sistema Operacional Sistema Operacional Microprogramação Dispositivos Físicos Hardware Figura 3 - Máquina de níveis. Fonte: Machado e Maia, 2004. Adaptação. 1.3 Ativação e Desativação do Sistema O sistema operacional é essencial para o funcionamento de um computador. Sem ele, grande parte dos recursos do sistema computacional não estaria disponível, ou se apresentaria de uma forma complexa para utilização pelos usuários.

14 Everson Scherrer Borges Toda vez que um computador é ligado, é necessário que o sistema operacional seja carregado da memória secundária para a memória principal. Esse processo, denominado ativação do sistema (boot), é realizado por um programa localizado em uma posição específica do disco (disco block), geralmente o primeiro bloco. O procedimento de ativação varia em função do equipamento, podendo ser realizado através do teclado, de um terminal ou por manipulação de chaves de um painel (Figura 4). Sistema Operacional BOOT Hard Disk Memória Principal Figura 4 - Ativação do sistema Fonte: Machado e Maia, 2004. Adaptação. A inicialização do sistema operacional ocorre com a carga inicial do sistema do disco para a RAM. Uma pequena rotina armazenada em ROM, chamada de CARREGADOR de BOOTSTRAP ou IPL (Carregador de Programa Inicial), lê uma rotina especial de carga no disquete, cd-rom, hard disk, pendrive, etc. Essa rotina normalmente reside na trilha 00, setor 00 (ou 01), (em sistemas baseados em disquete) e é chamado de setor de booting. O código contido no setor é transferido para a RAM, e então é executada. Esse CARREGADOR tem a responsabilidade exclusiva de carregar o resto do sistema operacional na memória. Em computação, boot é o termo em inglês para o processo de iniciação do computador, que carrega o sistema operacional quando a máquina é ligada. Muitos computadores podem executar apenas códigos existentes na memória de trabalho (ROM ou RAM). Os sistemas operacionais modernos são normalmente armazenados em disco rígido, CD-ROM ou outros dispositivos de armazenamento. Logo que o computador é ligado, ele não tem um sistema operacional na memória. Portanto, ele ficaria apenas energizado, já que o hardware do computador não pode fazer nenhuma operação por si mesmo. Então, é preciso que o sistema operacional

Sistemas Operacionais 15 seja carregado na memória principal assim que ligarmos o computador. Feito isso, podemos realizar qualquer ação via hardware, como carregar na memória um programa que está no disco, por exemplo. Na maioria dos sistemas, também existe o processo de desativação (Desligar). Este procedimento permite que as aplicações e componentes do sistema operacional sejam desativados de forma ordenada, garantindo sua integridade.[1] 1. Durante os estudos sobre a introdução dos sistemas operacionais, verificamos sua importância para a utilização do computador. Assim, defina: quais as principais razões para se estudar Sistemas Operacionais? 2. O que um sistema operacional faz? 3. Quais são as principais funções do Sistema Operacional? Explique-as. 4. Defina o conceito de uma máquina de níveis ou camadas. 5. Descreva o processo de ativação do sistema operacional. 6. Qual a importância dos aplicativos para o sistema operacional? 7. A partir de quais dispositivos é possível realizar a carga do sistema operacional? 8. Descreva o processo de boot. 9. O que é o bootstrap? [1] MACHADO, F.B. e MAIA, L.P. Arquitetura de Sistemas Operacionais. 4.ed. local? LTC, 2007. [2] SILBERSCHATZ, A., GALVIN, P.B., GAGNE, G. Fundamentos de Sistemas Operacionais. 6.ed. local? LTC, 2004. [3] TANENBAUM, A.S. Sistemas Operacionais Modernos. 2.ed. local? Pearson Brasil, 2007.

16 Everson Scherrer Borges _

Tipos de Sistemas Operacionais Caro aluno, esta é a segunda aula. Nela, veremos os tipos de Sistemas Operacionais, e isso é importante para entendermos as diferentes aplicações, conceitos e funcionalidades que envolvem os Sistemas Operacionais. As pessoas que vencem neste mundo são as que procuram as circunstâncias de que precisam e, quando não as encontram, as criam. (Bernard Shaw) Bom estudo! 2.1 Introdução A evolução dos hardwares relaciona-se diretamente com a evolução dos sistemas operacionais, que popularizou diversos conceitos e técnicas, antes só conhecida em ambientes de grande porte. Os sistemas operacionais podem ser classificados segundo diversos parâmetros e perspectivas, como tamanho, velocidade, suporte a recursos específicos, suporte a usuários, acesso à rede, etc. Esses sistemas são divididos em grupos, conforme a Figura 5, e estão relacionados com o tipo de computador que controlam e o tipo de aplicativos que suportam. Tipos de Sistemas Operacionais Sistemas Monoprogramáveis/ Monotarefa Sistemas Monoprogramáveis/ Multitarefa Sistemas com Múltiplos Processadores Figura 5: Tipos de Sistemas Operacionais Fonte: Machado e Maia, 2004. Adaptação.

18 Everson Scherrer Borges 2.2 Sistemas Monoprogramáveis / Monotarefa Os primeiros sistemas operacionais eram tipicamente voltados para a execução de um único programa. Qualquer outra aplicação, para ser executada, deveria aguardar o término do programa corrente. [1] Aqueles tipos de sistema, também conhecidos como sistemas monotarefa, caracterizavam-se por permitir que todos os recursos do sistema computacional (o processador, a memória e os periféricos) permanecessem exclusivamente dedicados à execução de um único programa ou a uma única tarefa. Neles, enquanto um programa aguardava por um evento, como a digitação de um dado, o processador permanecia ocioso, sem realizar qualquer tipo de processamento. A memória ficava subutilizada caso o programa não a preenchesse totalmente, e os periféricos, como discos e impressoras, dedicados a um único usuário, nem sempre eram utilizados de forma integral. Nos sistemas monotarefa, não existia muita preocupação com problemas decorrentes do compartilhamento de recursos como memória, processador e dispositivos de E/S. A Figura 6 mostra a organização de um sistema Monoprogramável ou Monotarefa. Dispositivos de E/S UCP Memória Programa / Tarefa Figura 6: Sistemas Monoprogramáveis / Monotarefa Fonte: Machado e Maia, 2004. Adaptação

Sistemas Operacionais 19 O sistema operacional monotarefa foi criado para que um único usuário pudesse fazer uma coisa por vez. Nos dias atuais, ainda podemos encontrar esses tipos de sistemas operacionais e, embora pareçam um tipo de sistema antigo, ainda existem sistemas operacionais monoprogramáveis ou monotarefa. Um bom exemplo é o sistema operacional Nokia OS S40, que trabalha nos celulares mais simples da Nokia, como no modelo 6212 (Figura 7); outro exemplo é o O Palm OS, dos computadores Palm, um moderno sistema operacional monousuário e monotarefa. Figura 7: Sistemas Monoprogramáveis / Monotarefa Fonte: http://www.gdhpress.com.br/blog/celulares-nokia/ 2.3 Sistemas Multiprogramáveis / Multitarefa Este é o tipo de sistema operacional mais utilizado em computadores de mesa e notebooks. As plataformas Microsoft Windows e Apple MacOS são exemplos de sistemas operacionais que permitem que um único usuário utilize diversos programas ao mesmo tempo. Por exemplo, é possível para um usuário de Windows escrever uma nota em um software editor de texto ao mesmo tempo em que faz download de um arquivo da internet e impressão de um e-mail. Verificamos que nesse tipo de sistema, os recursos computacionais são compartilhados entre diversos usuários e aplicativos. Neles, enquanto um programa espera uma operação de leitura ou gravação em disco, outros programas podem estar sendo processados simultaneamente, ou seja, no mesmo intervalo de tempo.

20 Everson Scherrer Borges Podemos observar, nesse caso, o compartilhamento da memória e do processador. O sistema operacional se preocupa em gerenciar o acesso concorrente aos seus recursos, como memória, processador e periféricos, de forma ordenada e protegida, entre os diversos programas.[1] O uso de sistemas multiprogramáveis proporciona a redução de tempo de resposta das aplicações processadas no sistema e a redução de custo. Sistemas multiprogramáveis, embora sejam mais eficientes que os monoprogramáveis, são de implementação muito mais difícil. De acordo do número de usuários que estão interagindo com o sistema, podemos classificar os sistemas multiprogramáveis como monousuário e multiusuário. Sistemas multiprogramáveis monousuário são encontrados em computadores pessoais ou em estações de trabalho, onde há apenas um único usuário interagindo com o sistema. Neste caso, existe a possibilidade da execução de diversas tarefas ao mesmo tempo, como a edição de texto, uma impressão e o acesso à Internet. [1] Sistemas operacionais multiprogramáveis multiusuário (Figura 8), são ambientes que possibilitam que diversos usuários possam conectar-se ao sistema de forma simultânea Programa / Tarefa Dispositivos de E/S Programa / Tarefa UCP Memória Programa / Tarefa Programa / Tarefa Figura 8: Sistemas Multiprogramáveis / Multitarefa Fonte: Machado e Maia, 2004. Adaptação Sistemas operacionais multiprogramáveis são os mais utilizados em computadores de mesa e notebooks. Um sistema operacional multitarefa permite que diversos programas utilizem simultaneamente os recursos do computador. O sistema operacional deve se certificar de que as solicitações de vários programas estejam balanceadas.

Sistemas Operacionais 21 Os ambientes multiprogramáveis ou multitarefa classificam-se pela forma com que suas aplicações são gerenciadas ou interadas com os usuários, podendo ser divididos em sistemas batch, de tempo compartilhado ou de tempo real. 2.3.1 Sistemas Batch Foram os primeiros sistemas operacionais multiprogramáveis a serem implementados na década de 1960. Os programas, que também eram chamados de jobs, eram submetidos para execução através de cartões perfurados, e eram armazenados em disco ou fita, onde aguardavam para serem processados. Posteriormente, em função da disponibilidade de espaço na memória principal, os jobs eram executados produzindo uma saída em disco ou fita. [1] Este tipo de processamento tem a característica de não interagir com o usuário e a aplicação. Todas as entradas e saídas de dados da aplicação são implementadas por algum tipo de memória secundária. Atualmente, os sistemas operacionais implementam e simulam o processamento batch, não existindo sistemas exclusivamente dedicados a este tipo de processamento. [1] 2.3.2 Sistemas de Tempo Compartilhado Sistemas de tempo compartilhado ou time-sharing possibilitam a execução de diversos programas a partir da divisão do tempo de processamento em intervalos, chamados fatia de tempo (time-slice). Caso a fatia de tempo não seja satisfatória para a conclusão da execução do programa, este tempo é interrompido pelo sistema operacional e substituído por um outro, enquanto fica aguardando por uma nova fatia de tempo. Com isso, o sistema cria um ambiente de trabalho próprio, dando a impressão de que todo o sistema está dedicado, exclusivamente, para cada usuário. Grande parte dos aplicativos comerciais ultimamente são processados em sistemas de tempo compartilhado, que permitem tempos curtos de respostas a seus usuários, e menores custos em função da utilização compartilhada dos diversos recursos do sistema. 2.3.3 Sistemas de Tempo Real Nos sistemas de tempo real ou real-time, os tempos de resposta devem estar dentro de limites rígidos, que devem ser satisfeitos. Caso contrário, poderão ocorrer problemas irreparáveis. Neste tipo de sistema, não existe

22 Everson Scherrer Borges a idéia de pedaço/fatia de tempo. Um programa utiliza o processador durante o tempo que for necessário ou até que apareça outro cujo uso seja prioritário. A autoridade ou prioridade de execução é definida pelo próprio programa/ aplicativo e não pelo sistema operacional, como nos sistemas de tempo compartilhado. Esses sistemas, normalmente, estão presentes em aplicações de controle de processos, como no monitoramento de refinarias de petróleo, controle de tráfego aéreo, de usinas termoelétricas e nucleares, ou em qualquer aplicação onde o tempo de respostas é fator fundamental. [1] (RTOS - Real-time operating system). É o Sistema Operacional de Tempo Real, utilizado para controlar máquinas, instrumentos científicos e sistemas industriais. Geralmente, um RTOS não tem uma interface muito simples para o usuário e não é destinado para o usuário final, pois esse tipo de sistema é entregue como uma caixa selada. A função do RTOS é gerenciar os recursos do computador para que uma operação específica seja sempre executada durante um mesmo período de tempo. Numa máquina complexa, se uma parte se move mais rapidamente só porque existem recursos de sistema disponíveis, isto pode ser tão catastrófico quanto se uma parte não conseguisse se mover porque o sistema está ocupado. 2.4 Sistemas Com Multiprocessadores Sistema monoprocessado - Caracteriza-se por possuir um único processador, sendo este controlado pelo sistema operacional instalado. Ex.: Microcomputador PC com Windows 98. Sistema multiprocessado - Caracteriza-se por possuir mais de um processador, sendo que estes podem compartilhar o mesmo sistema operacional, ou cada um pode possuir o seu próprio sistema. A principal vantagem desse tipo de sistema é permitir que vários processos possam ser executados simultaneamente, sem a necessidade de compartilhamento do tempo do processador, ou então que um determinado processo possa ser dividido entre as unidades de processamento para agilizar a sua conclusão.

Sistemas Operacionais 23 Como o sistema operacional é responsável por gerenciar a execução das tarefas, deve estar devidamente adaptado para operar em sistemas com mais de uma unidade de processamento, para poder distribuir a execução dos programas e maximizar a utilização dos recursos disponíveis. A construção de Sistemas com suporte a Múltiplos processadores foi feita pensando-se em aplicações voltadas para o processamento científico, exploração de minerais e petróleo, simulações e computação gráfica. Grande parte dos supercomputadores instalados ao redor do mundo está em uso em Laboratórios de Pesquisa dos EUA, Europa e Japão, e em grandes empresas como Dupont, Petrobrás, entre outras. Os Sistemas com múltiplos processadores são divididos, conforme Figura 9. Tipos de Sistemas Operacionais Sistemas Monoprogramáveis/ Monotarefa Sistemas com Múltiplos Processadores Sistemas Assimétricos Sistemas Simétricos Sistemas Operacionais de Redes Sistemas Operacionais de Distribuídos Figura 9: Sistemas com Múltiplos Processadores Fonte: Machado e Maia, 2004. Adaptação. 2.4.1 Sistemas Fortemente Acoplados Nos sistemas fortemente acoplados (Figura 10), existem vários processadores compartilhando uma única memória e gerenciados por apenas um sistema operacional. Múltiplos processadores permitem que vários programas sejam executados ao mesmo tempo, ou que um programa seja dividido em subprogramas, para execução simultânea em mais de um processador. Dessa forma, é possível ampliar a capacidade de computação de um sistema, adicionando-se apenas novos processadores, com um custo muito inferior à aquisição de outros computadores.[1]

24 Everson Scherrer Borges Com a introdução do multiprocessamento, novos problemas surgiram, pois vários processadores podem acessar as mesmas áreas de memória, e a isso chamamos de concorrência. Além disso, existe o problema de organizar, de forma eficiente, os processadores, a memória e os periféricos. Em decorrência do multiprocessamento, houve o aparecimento dos computadores voltados, principalmente, para processamento científico, aplicado, por exemplo, ao desenvolvimento aeroespacial, à prospecção de petróleo, às simulações, ao processamento de imagens e a CAD (desenhos técnicos). A princípio, qualquer programa que faça uso intensivo do processador será beneficiado pela adição de processadores ao sistema computacional. UCP Memória UCP Dispositivos de E/S Dispositivos de E/S Figura 10: Sistemas Fortemente Acoplados Fonte: Machado e Maia, 2004. Adaptação. 2.4.1.1 Sistemas Assimétricos No sistema assimétrico ou mestre/escravo (Figura 11), somente um processador (mestre) pode executar serviços do sistema operacional, como, por exemplo, realizar operações de entrada/saída, gerenciar processos, inicializar o sistema. Sempre que um processador do tipo escravo precisar realizar uma operação de entrada/saída ou escalonar um processo terá que solicitar o serviço ao processador mestre. Dependendo da quantidade de operações de entrada/saída destinadas aos processadores escravos, o sistema pode se tornar ineficiente, devido ao elevado número de interrupções que deverão ser tratadas pelo mestre.