Prévia do material em texto
Curso Técnico em Informática Fundamentos de Sistemas Operacionais Robson Braga de Andrade Presidente da Confederação Nacional da Indústria Rafael Lucchesi Diretor do Departamento Nacional do SENAI Regina Maria de Fátima Torres Diretora de Operações do Departamento Nacional do SENAI Alcantaro Corrêa Presidente da Federação da Indústria do Estado de Santa Catarina Sérgio Roberto Arruda Diretor Regional do SENAI/SC Antônio José Carradore Diretor de Educação e Tecnologia do SENAI/SC Marco Antônio Dociatti Diretor de Desenvolvimento Organizacional do SENAI/SC Confederação Nacional da Indústria Serviço Nacional de Aprendizagem Industrial Curso Técnico em Informática Fundamentos de Sistemas Operacionais Marlow Rodrigo Becker Dickel Vicente D’Onofrio Florianópolis/SC 2011 É proibida a reprodução total ou parcial deste material por qualquer meio ou sistema sem o prévio consentimento do editor. Autor Marlow Rodrigo Becker Dickel Vicente D’Onofrio Fotografias Banco de Imagens SENAI/SC http://www.sxc.hu/ http://office.microsoft.com/en-us/ images/ http://www.morguefile.com/ http://www.bancodemidia.cni.org.br/ Ficha catalográfica elaborada por Luciana Effting CRB14/937 - Biblioteca do SENAI/SC Florianópolis D548f Dickel, Marlow Rodrigo Becker Fundamentos de sistemas operacionais / Marlow Rodrigo Becker Dickel, Vicente D’Onofrio. – Florianópolis : SENAI/SC/DR, 2011. 45 p. : il. color ; 30 cm. Inclui bibliografias. 1. Sistemas operacionais (Computadores). 2. Sistemas operacionais distribuídos (Computadores). 3. Arquitetura de computador. 4. Programação (Computadores). I. D’Onofrio, Vicente. II. SENAI. Departamento Regional de Santa Catarina. III. Título. CDU 004.451 SENAI/SC — Serviço Nacional de Aprendizagem Industrial Rodovia Admar Gonzaga, 2.765 – Itacorubi – Florianópolis/SC CEP: 88034-001 Fone: (48) 0800 48 12 12 www.sc.senai.br Prefácio Você faz parte da maior instituição de educação profissional do estado. Uma rede de Educação e Tecnologia, formada por 35 unidades conecta- das e estrategicamente instaladas em todas as regiões de Santa Catarina. No SENAI, o conhecimento a mais é realidade. A proximidade com as necessidades da indústria, a infraestrutura de primeira linha e as aulas teóricas, e realmente práticas, são a essência de um modelo de Educação por Competências que possibilita ao aluno adquirir conhecimentos, de- senvolver habilidade e garantir seu espaço no mercado de trabalho. Com acesso livre a uma eficiente estrutura laboratorial, com o que existe de mais moderno no mundo da tecnologia, você está construindo o seu futuro profissional em uma instituição que, desde 1954, se preocupa em oferecer um modelo de educação atual e de qualidade. Estruturado com o objetivo de atualizar constantemente os métodos de ensino-aprendizagem da instituição, o Programa Educação em Movi- mento promove a discussão, a revisão e o aprimoramento dos processos de educação do SENAI. Buscando manter o alinhamento com as neces- sidades do mercado, ampliar as possibilidades do processo educacional, oferecer recursos didáticos de excelência e consolidar o modelo de Edu- cação por Competências, em todos os seus cursos. É nesse contexto que este livro foi produzido e chega às suas mãos. Todos os materiais didáticos do SENAI Santa Catarina são produções colaborativas dos professores mais qualificados e experientes, e contam com ambiente virtual, mini-aulas e apresentações, muitas com anima- ções, tornando a aula mais interativa e atraente. Mais de 1,6 milhões de alunos já escolheram o SENAI. Você faz parte deste universo. Seja bem-vindo e aproveite por completo a Indústria do Conhecimento. Sumário Conteúdo Formativo 9 Apresentação 11 12 Unidade de estudo 1 Introdução Seção 1 - O que é um sistema operacional? Seção 2 - Um pouco da história 18 Unidade de estudo 2 O Funcionamento Seção 1 - Como o SO funciona Seção 2 - Shell e kernel Seção 3 - Classificações: usuários, projeto e processos Seção 4 - Gerenciamento de processos Seção 5 - Gerenciamento de recursos Seção 6 - Gerenciamento de entradas e saídas Seção 7 - Sistema de arqui- vos 34 Unidade de estudo 3 Os Sistemas Operacionais Seção 1 - Primeiros SOs Seção 2 - Windows Seção 3 - Linux Seção 4 - Mac OS 13 14 Finalizando 41 Referências 43 19 19 22 26 28 30 31 35 37 39 40 8 CURSOS TÉCNICOS SENAI Conteúdo Formativo 9FUNDAMENTOS DE SISTEMAS OPERACIONAIS Carga horária da dedicação Carga horária: 30 horas Competências Analisar os recursos de sistemas operacionais, modos de processamento, compa- tibilidades e gerenciamento de recursos em sistemas computacionais. Conhecimentos ▪ Arquitetura de sistemas operacionais (acesso a memória, multithreading – processamento paralelo e capacidade de processamento). ▪ Compatibilidade entre sistemas heterogêneos. ▪ Processamento distribuído. ▪ Sistemas multiplataforma. ▪ Tipos de dados. ▪ Tipos de sistemas operacionais; gerenciamento de memória. Habilidades ▪ Explorar recursos dos sistemas operacionais. ▪ Identificar os modos de processamento, compatibilidades e gerenciamento de sistemas operacionais. Atitudes ▪ Organização e zelo na utilização de equipamentos. ▪ Foco no conteúdo trabalhado. ▪ Acesso a sítios relacionados ao tema trabalhado. ▪ Organização e limpeza dos ambientes coletivos. ▪ Dedicação e empenho nas atividades curriculares e extracurriculares. ▪ Capacidade de abstração. Apresentação FUNDAMENTOS DE SISTEMAS OPERACIONAIS Olá, caro aluno! Seja bem-vindo à Unidade Curricular Fundamentos de Sistemas Ope- racionais! Aqui você verá conceitos sobre o funcionamento do programa mais ne- cessário ao funcionamento do computador, conhecendo alguns deles e suas diferenças. Esse conteúdo o auxiliará na criação de programas de computador, pois você os criará para serem utilizados em um sistema operacional e precisará saber como ele funciona para que atenda às ne- cessidades de seu programa. Além disso, nossa intenção é dar dicas para que você escolha o melhor sistema operacional, conforme sua preferên- cia, e também que aproveite-o ao máximo. Tenha um ótimo estudo! Marlow Rodrigo Becker Dickel Tecnólogo em Redes Industriais, graduado pela Faculdade de Tecnologia do SENAI Joinville. É professor das disciplinas de Fun- damentos de Sistemas Opera- cionais, Introdução ao Compu- tador, Lógica de Programação, Banco de Dados I, Programação Orientada a Objetos I, Projetos de Software I e Infraestrutura da Internet do Curso Técnico em Informática e ministra discipli- nas de Informática Básica para outros cursos. Orientador de Trabalho de Conclusão de Curso para o Curso Técnico em Infor- mática. Vicente D’Onofrio Tecnólogo em Processos Ge- renciais, graduado pelo Centro Universitário Leonardo da Vinci. Atuou como professor em Ar- quitetura de Computadores no Curso Técnico de Manutenção e Montagem de Computadores do SENAC Joinville. Consultor em configuração e manuten- ção de microcomputadores, desktop e notebooks. Instrutor de redes de pequeno porte, orientador do Curso de Apren- dizagem Industrial Manutenção de Computadores e Redes Lo- cais do SENAI/SC. Coordenador dos Cursos Técnicos em Infor- mática, Automação Industrial e Eletrotécnica no SENAI/SC. 11 Unidade de estudo 1 Seções de estudo Seção 1 – O que é um sistema operacional? Seção 2 – Um pouco da história 13FUNDAMENTOS DE SISTEMAS OPERACIONAIS Introdução SeçãO 1 O que é um sistema operacional? Você com certeza já utilizou um sistema operacional (SO), não é mesmo? Mas será que você sabe o que é um sistema operacional? Para iniciar, imagine um mundo sem nenhum SO. É difícil, não? Quando você pensou nisso, qual foi o seu conceito de sistema ope- racional? A partir de agora, vere- mos que sistema operacional na verdade é muito mais do que um simples programa de computador. Na verdade,SO é mais que um programa. Ele é a junção de vários! Isso quer dizer que qualquer pequena função bá- sica do seu aparelho eletrôni- co está contida nele. No caso do computador, fun- ções como imprimir, copiar, co- lar, abrir arquivos, entre outras, são, na verdade, controladas pelo sistema operacional. Todos os programas se aproveitam disso. Mas veja bem! Quando você ins- tala um programa em um sistema operacional, ele não precisa insta- lar essas funções. Apenas é neces- sário que ele saiba “encontrá-las”. E isso é uma grande vantagem, pois imagine vários programas instalados no SO, todos com essas funções. Por mais que elas fossem minúsculas, ocupariam um es- paço desnecessário na memória do equipamento. Dessa forma, é possível um melhor aproveitamento dos recursos na hora da instalação do programa, já que são funcionalidades que não precisam ser instaladas, além da economia de memória. Justamente para poder prover esses serviços, ele é o primeiro software (programa) a ser instalado no equipamento. Assim, ele poderá servir como guia para que todos os outros programas consigam se comunicar com o hardware (equipamentos físicos). Além disso, é mais fácil para um programador criar um software para o sistema operacional do que para o hardware, já que, com a frequente atualização na tecnologia, há proba- bilidade de que aquele programa não venha a funcionar, por exemplo, interagindo com um hardware novo da mesma maneira do que com um antigo. Isso poderia causar um grande problema aos programadores, pois eles deveriam ter versões de seus programas para cada combinação de hardware existente. Praticamente impossível, não é? Agora quero chamar atenção a outro detalhe: você percebeu que no início desta seção a palavra “computador” aparece poucas vezes? E sabe por quê? Na verdade, esse conceito de programa não serve apenas para ele. 14 CURSOS TÉCNICOS SENAI Você sabe quantos equipamentos eletrônicos com sistema operacional você possui? E quantos SOs diferentes você já utilizou? Todo equipamento que interage com o ser humano para facilitar sua utilização do hardware é um sistema operacional. Um celular, uma câmera fotográfica digital, um videogame, são exemplos de equipamentos que com certeza contêm um SO. Com o avanço da tecnologia, eletrônicos que não precisavam de um SO agora o têm, para maior interação do usu- ário e para maior possibilidade de aproveitamento do mesmo. Por exem- plo, televisões agora têm sistemas para acesso à internet, onde é possível fazer desde downloads de vídeos, até acessar seu e-mail ou outras páginas. Puxa! Quantas possibilidades trouxeram os sistemas operacionais, não é mesmo? Na seção seguinte você conhecerá um pouco da história do sistema operacional. Vamos lá! SeçãO 2 Um pouco da história Inicialmente, na década de 1940, os computadores não passavam de grandes calculadoras. Nessa época, as tarefas eram passadas ao com- putador por meio de cartões perfurados, que eram folhas de papel com furos em valores específicos, para que os computadores conseguissem entender a tarefa a ser realizada. Figura 1: Cartão perfurado Cada tarefa a ser realizada pelo computador é chamada de job. Cada job é formado não só pelo programa a ser realizado, mas também pelos valores a serem utilizados e as instruções de controle para a máquina. Para agilizar ainda mais o processamento, surgiu a ideia de batch. Você já ouviu falar nessa ideia? Ela representa uma união de jobs com fun- ções parecidas. Mas, para cada tarefa ser realizada, era necessária uma interação com o usuário, mesmo que fosse apenas uma confirmação, e isso gerava uma lentidão no processo. Com o surgimento dos discos magnéticos para armazenamento, isso mudou. O sistema operacional ficava gravado no disco, juntamente com certas jobs. Assim, o processa- dor da máquina não ficava parado quando tinha muitos afazeres. Quan- do haviam várias tarefas a serem processadas, e uma delas havia sido processada por completo, a próxima da “fila” era realizada, e assim por diante. Esse conceito tem o nome de multiprogramação. 15FUNDAMENTOS DE SISTEMAS OPERACIONAIS Figura 2: Multiprogramação Ficou claro o conceito de multiprogramação? Saiba agora o que é tempo compartilhado! No início dos anos 70, surgiu um conceito que até hoje é utilizado nos computadores: o time sharing (tempo compartilhado). Os sistemas com time sharing conseguem fazer com que vários programas que estejam em execução sejam processados quase simultaneamente. Na verdade, naquela época não existiam processadores com mais de um núcleo, e já que cada núcleo só processa uma tarefa por vez, não era exatamente simultâneo o processamento de duas tarefas. O processador era dividido entre as tarefas, que tinham um tempo deter- minado para utilizar o mesmo para suas finalidades. Aqui surge o con- ceito de processo. Conforme Marçula (2008, p. 159), “cada programa carregado na memória, e em execução, é chamado de processo”. Mas essa execução de mais de uma tarefa sem que a anterior fosse terminada poderia criar um novo problema: como o computador iria saber em que local da memória estava aquela informação que ele estava processando, para que ele não devolvesse a resposta do processamento no lugar erra- do, talvez até substituindo as informações de outro programa? Esse controle virou tarefa do SO, que começou a cuidar dos arquivos como um todo, sabendo suas localizações. Com a evolução dos equipa- mentos, o próprio processador absorveu essa tarefa de saber o local da memória com o processo que ele está realizando no momento, e o SO ficou apenas com o controle de arquivos quanto a sua organização. Figura 3: Time sharing 16 CURSOS TÉCNICOS SENAI A próxima inovação foi o multiprocessamento. Mas veja bem! Multi- processamento é diferente de multiprogramação. Esse novo conceito consiste em mais de um processador realizando as tarefas, todos eles tendo acesso a todo o hardware, e cada um deles realizando uma tarefa. É a maneira de trabalho dos processadores de vários núcleos de uma maneira geral. Mas como eles utilizam de forma concomitante todo o hardware, o de- sempenho não é o mesmo de, por exemplo, dois computadores com processadores de um núcleo, cada qual com seu hardware. Há duas mo- dalidades de multiprocessamento: simétrico (o mais utilizado, onde mesmo se um processador falhar, o outro trabalha normalmente, pois cada um tem uma cópia idêntica do SO) e assimétrico (existe um pro- cessador principal, chamado de “mestre”, que controla o processamento entre os outros processadores, os “escravos”, mas se o “mestre” parar de funcionar, todos os outros também param, e é por isso que esse mo- delo já não é muito utilizado). Figura 4: Multiprocessamento simétrico Depois dele, surgiram os sistemas de tempo real, que dava para cada processo um tempo limite para sua execução e, caso ele não conseguisse ser processado a tempo, haveria falhas. Um exemplo desse sistema é a injeção de combustível nos carros: caso ela não ocorra a tempo, o motor vai falhar. Os sistemas de tempo real também têm duas modalidades: crítico (são sistemas especiais, como o citado acima, onde, se aquele processo não for realizado em tempo, algo anormal acontecerá) e não crítico (apenas dá prioridade a processos mais importantes, até que eles sejam completados.) E, finalmente, uma concepção que apareceu juntamente com as redes de computadores, é a dos sistemas distribuídos. Saiba que essa ideia se aproxima do multiprocessamento, mas com máquinas em rede, cada qual com seu hardware, dividindo as tarefas entre si. Ela aproveita-se jus- tamente da maior falha do multiprocessamento como seu maior desta- que. Mas, claro, para esses sistemas, há uma necessidade de mais de uma máquina funcionando ao mesmo tempo. 17FUNDAMENTOS DE SISTEMAS OPERACIONAIS Figura 5: Sistema distribuído Foi um aprendizado e tanto, não é mesmo? Mas fique tranquilo que você verá mais exemplos e terá maiores informações sobre os sistemasoperacionais na Unidade de estudo 3. Agora, o convite é para seguir para a próxima etapa, onde o foco será o funcionamento do sistema operacional. Até lá! Unidade de estudo 2 Seções de estudo Seção 1 – Como o SO funciona Seção 2 – Shell e kernel Seção 3 – Classificações: usuários, projeto e processos Seção 4 – Gerenciamento de processos Seção 5 – Gerenciamento de recursos Seção 6 – Gerenciamento de entradas e saídas Seção 7 – Sistema de arquivos 19FUNDAMENTOS DE SISTEMAS OPERACIONAIS O funcionamento SeçãO 1 Como o SO funciona Segundo Oliveira (2004 p. 1), “o sistema operacional é uma cama- da de software colocada entre o hardware e os programas que exe- cutam tarefas para os usuários”. Por isso, ele é essencial ao funcio- namento da máquina. No caso do computador, ele é iniciado após os testes de hardware executados pela BIOS (Basic Input/Output System – sistema básico de entra- da e saída), um sistema que testa a conexão com os equipamentos de necessidade essencial para o funcionamento do computador. Quando a BIOS detecta que o funcionamento desses equipa- mentos está correto, ela inicia o sistema operacional. Como você estudou anteriormente, todos os programas de computador a se- rem executados criam processos, reservando espaços na memória RAM para seu funcionamento, e o sistema operacional é que inter- medeia os programas e o hardware. Mas se ele é um programa e não está ainda ligado ao hardware, quem vai criar o seu processo? Na verdade, isso acontece por um procedimento chamado booting. A placa-mãe contém em uma me- mória ROM (Read-Only Memory – memória apenas de leitura) um programa chamado Bootstrap, que contém a localização do ker- nel (veja a seção 2 para melhor compreensão) do sistema opera- cional no disco rígido ou outro dispositivo de armazenamento em massa em que ele esteja insta- lado. Então, ao término dos testes da BIOS, o Bootstrap é iniciado, copia para a memória RAM o ker- nel do sistema operacional, para que, a partir disso, o controle do computador seja dele. E o shell e kernel, você sabe para que são utilizados? Siga em frente para descobrir! SeçãO 2 Shell e Kernel Agora você já sabe que o sistema operacional serve para que o usu- ário não interaja diretamente com o hardware, certo? Isso tornaria a utilização do computador mais difícil. Mas para que isso seja feito corretamente, o SO deve ter uma interface em que o usuário consi- ga inserir os comandos para a exe- cução dos programas e tarefas ne- cessários. O nome dessa interface é shell (também conhecido por sistema interpretador de coman- dos). A shell é uma ligação entre o usuário e o kernel do sistema operacional, para que ele compre- enda o que o usuário pretende e execute a tarefa apropriada, inte- ragindo com o hardware. Há dois tipos de shell: linha de comando e gráfica. Vamos conhecer cada um deles? Acompanhe! A shell de linha de comando é também conhecida como prompt de comando e con- siste em uma tela em que o usuário insere seus comandos por meio de frases, palavras e combinações de caracteres (os tais comandos) para que as ações desejadas sejam exe- cutadas. Ela é um pouco mais complexa de se utilizar, já que o usuário deve saber por inteiro o comando, ou pelo menos como começá-lo para então pedir “ajuda” do siste- ma operacional. E sabe por quê? Como os comandos são predefi- nidos pelo próprio sistema opera- cional, qualquer erro que o usuá- rio cometer fará com que aquele comando não seja executado. Hoje em dia, ele é um tipo de in- terface não comumente utilizado, mesmo estando presente, ao me- nos parcialmente, em praticamen- te todos os sistemas operacionais Praticamente tudo o que se fazia nele está presente nos SO por meio da shell gráfica. Mas, mesmo assim, alguns equipamentos ainda se utilizam dela para, dependen- do da ocasião, facilitar a compre- ensão do comando pelo hardware ou simplesmente por não haver necessidade de “auxiliar” o usuá- rio a não cometer erros, caso de programas voltados para usuários mais avançados. Um exemplo que 20 CURSOS TÉCNICOS SENAI podemos encontrar de shell de linha de comando é o prompt de comando contido nos sistemas operacionais Windows e Linux, em praticamente todas as suas versões. Quer ver um exemplo de prompt de comando Win- dows? Então acompanhe! Figura 6: Prompt de comando Windows Como você pode perceber, na imagem anterior foi executado o coman- do DIR, que no Windows serve para analisar os arquivos e pastas conti- dos em certo lugar do computador, no caso, na pasta raiz do disco local (C:\). E você sabia que os primeiros SOs não tinham os dois tipos de interfa- ce? Isso mesmo. Era apenas a shell de linha de comando. Imagine o monitor de seu computador por completo como a imagem anterior e você apenas digitando os comandos, em uma situação onde o mouse não precisava existir (na verdade, não existia mesmo)! Apenas com o passar do tempo a facilidade de uso do computador co- meçou a ficar importante (pense bem, o que você iria preferir: ter de fazer tarefas como cálculos complexos manualmente ou decorar alguns comandos para fazer uma máquina ser capaz de realizá-los com rapidez e praticamente sem erros?). Nessa “revolução”, surgem as shell gráficas (também chamadas de GUI – Graphic User Interface). Nelas, o usuário tem uma menor suscepti- bilidade a erros, pois ele deve escolher a tarefa desejada por meio de opções predeterminadas, por meio do clique do mouse em menus, botões e ícones, o que também torna todas as tarefas mais simples. Como curiosidade, saiba que o início dessa mudança de sistemas com linha de comando para sistemas com interfaces gráficas, ponto crucial para o computador ser o que conhecemos, veio de uma empresa muito conhecida hoje por todos: a Apple, que criou, em 1983, o sistema ope- racional Lisa, o primeiro SO com interface gráfica e, claro, com mouse. 21FUNDAMENTOS DE SISTEMAS OPERACIONAIS É importante ressaltar que, ainda que a shell gráfica seja mais fácil de utilizar, há muitas coisas que se fazem mais rapidamente em um compu- tador pela shell linha de comando. Acompanhe a seguir! Figura 7: Tela do SO Lisa Como falamos, a shell é uma ligação entre o usuário e o kernel do siste- ma operacional. Mas o que é o kernel? Essa é uma boa pergunta! O kernel (núcleo) é a parte mais importante do SO. Ele é a ponte entre a shell e o hardware, fazendo o reconhecimento e a execução dos pro- cessos. Conforme Oliveira (2004, p. 4), “os principais componentes do kernel de qualquer sistema operacional são a gerência de processador, a gerência de memória, o sistema de arquivos e a gerência de entrada e saída”. Nele, estão contidas aquelas pequenas tarefas que você viu na se- ção 1 da Unidade de estudo 1 e outras pequenas instruções que ajudam o sistema operacional a achar os equipamentos de hardware responsáveis por receber as informações do usuário, interpretá-las e mostrar ao mes- mo uma resposta. Falando nisso, você já deve ter ouvido falar sobre drivers, correto? Sabe do que se trata? Eles nada mais são do que pequenos programinhas ins- talados no SO para o reconhecimento de dispositivos pelo computador. Por exemplo, ao instalar uma placa de vídeo no seu computador, para que ela funcione de forma correta e completa, é provável que você deva instalar o(s) seu(s) driver(s). Mas como cada sistema operacional trabalha diferentemente quanto à interação com o hardware, o driver, como os outros programas em geral, geralmente é específico àquele SO. Ou seja, não adianta instalar um driver feito para Windows em um Mac OS. Ele não funcionará. Portanto, fique atento! Figura 8: Shell e kernel Depois de observar a figura ficou mais fácil de entender, você con- corda? A figura anterior resume o que você estudou nesta seção: o usuário acessa, por meio da shell, o kernel, para que ele, então, aces- se o hardware e realize a tarefa de- sejada. Pronto para mais uma etapa? Na seção seguinte você aprenderá a classificarusuários, projeto e pro- cessos. Siga com motivação para cumprir mais uma etapa impor- tante nesta jornada! 22 CURSOS TÉCNICOS SENAI SeçãO 3 Classificações: usuários, projeto e processos Como você já sabe, existem vários tipos de sistemas operacionais. Para poder entendê-los melhor, é importante saber três coisas so- bre um SO: como ele lida com os usuários? Qual é o projeto dele? E como ele interage com os pro- cessos? Essas são questões bem importantes e a partir de agora você verá as classificações de SO possíveis conforme cada uma de- las. Vamos lá? Quanto à classificação por usu- ários, a divisão é simples: monou- suário e multiusuário. Saiba mais sobre cada um! Monousuário é o sistema que permite apenas um usuário utilizando por vez. Sistemas como as versões caseiras de Windows e os SO de celulares são exemplos. E multiusuário é todo SO em que mais de um usuário pode utilizar o com- putador simultaneamente. Todos os sistemas operacio- nais de rede, entre eles Unix e Linux, são exemplos dessa classificação. Sobre o projeto de um SO, que descreve como trabalha o seu ker- nel, podem-se citar quatro tipos: núcleo monolítico, micronúcleo, sistema em camadas e máquina virtual. Nessa parte, para facili- tar sua compreensão, você verá imagens divididas em duas partes: modo usuário e modo kernel. No modo usuário está contida a shell e, no modo kernel, o hardware. Mas atenção! Um projeto de núcleo monolítico (ou monobloco) é sim- ples. Porém é um pouco desorganizado, o que dificulta a compreensão do que está acontecendo em um computador que o utiliza. Machado (2002, p. 58) afirma que ele pode ser comparado “com uma aplicação formada por vários módulos que são compilados separadamente e de- pois linkados, formando um grande e único programa executável, onde os módulos podem interagir livremente”. Esse projeto foi o utilizado nos sistemas Unix iniciais e também no MS-DOS. Figura 9: Núcleo monolítico Já o micronúcleo (microkernel), como o próprio nome diz, tem um nú- cleo resumido, com as tarefas e informações mais essenciais se tornando processos. Quando um programa precisa de algum desses processos, ele se torna um “cliente” de um processo, que é um “servidor”. O micronú- cleo faz a comunicação entre o “cliente” e o “servidor” para que a tarefa seja executada. É importante citar que o “cliente” é executado na porção do usuário, não necessariamente no kernel, o que não permite seu acesso direto ao hardware e, se algum dos “servidores” causar algum problema, só ele parará, não o kernel inteiro. Vale a pena destacar que o primeiro SO com esse conceito é o Mach, da década de 1980. 23FUNDAMENTOS DE SISTEMAS OPERACIONAIS Figura 10: Micronúcleo E o sistema em camadas, você sabe a sua função? Ele divide o sistema em partes mais internas ou externas, em que as mais internas têm maior acesso ao hardware e as outras só o acessam interagindo com a cama- da mais próxima a ela, como uma hierarquia. Seu conceito surgiu em Eindhoven, Holanda, no sistema operacional THE (Technische Hogeschool Eindhoven), de 1968. É essa hierarquia que garante maior proteção ao hardware, pois, para uma camada mais externa chegar a ele, precisa interagir com a pró- xima, que interage com a seguinte, até chegar ao kernel, que então acessa o hardware. Um exemplo disso são os conhecidos “modos de usuário”, onde, em um sistema chamado OpenVMS, havia quatro modos diferentes de usuário, cada um com mais privilégios do que o outro. Segundo Machado (2002, p. 60), “atualmente, a maioria dos sistemas comerciais utiliza o modelo de duas camadas, onde existem os modos de acesso usuário (não privi- legiado) e kernel (privilegiado)”. E você, utilizando alguma versão do Windows ou Linux, já tentou instalar algum programa, mas não conseguiu por falta de privilégios? Se sua resposta for sim, saiba que isso aconteceu porque você estava logado na máquina como não privilegiado e esses sistemas se utilizam desse projeto. Figura 11: Sistema em camadas do Windows Por fim, máquina virtual é um projeto no mínimo curioso: é um SO dentro de outro SO! Na ver- dade, o sistema operacional “hos- pedeiro” recebe um programa de máquinas virtuais, que também tem acesso total ao hardware, e nesse programa se instala, então, a tal máquina virtual. Ela é execu- tada, como todos os programas normais, em uma janela do SO “hospedeiro”, e tem o funciona- mento igual ao obtido em uma instalação direta dele, não sendo apenas uma simulação, mas sendo apenas necessário o disco de ins- talação do SO que se deseja insta- lar na máquina virtual, justamente por ser uma aplicação real do SO. Isso causa situações inusitadas, como um Windows dentro de um Linux, ou até várias versões de SO na mesma máquina, mas você já deve estar imaginando que a pro- dutividade do computador deve diminuir, e isso é verdade, pois as máquinas virtuais ocupam o mesmo hardware. Então, para su- portar esse projeto, é preciso uma máquina mais potente, conforme a quantidade de máquinas virtuais que se deseja criar. Saiba que esse conceito foi ideia da IBM, que, em 1972, no SO VM/370, implantou a ideia, para que sistemas OS/360, também da marca, pudessem exe- cutar seus processos nela. As maiores vantagens são o fato de que se pode utilizar mais de um tipo de SO dife- rente na mesma máquina, e também que se uma máquina virtual der problema, as ou- tras, inclusive a “hospedeira”, podem continuar funcionan- do normalmente. 24 CURSOS TÉCNICOS SENAI Saiba que existem programas gratuitos na internet para download que per- mitem a criação de máquinas virtuais, como o VirtualBox. Figura 12: Máquinas virtuais E agora chegou a hora de conhecer o terceiro tipo de classificação: por processos. Há duas diferenciações que podemos fazer aqui: quantidade de processos a serem executados e quantidade de processadores a serem utilizados. Mas antes de explicá-las, já que vamos falar de processos, é importante dizer que processo não é igual a programa. O programa é algo que você instala na máquina, que tem uma sequência limitada de instruções que não mudam, conforme sua intenção no mo- mento em que foi desenvolvido por seus programadores. Já o processo é criado quando você precisa executar o programa e não tem todas as in- formações sobre ele, apenas as necessárias conforme o momento de sua execução. Por exemplo, nós podemos ter em diferentes computadores os mesmos programas, mas, como somos usuários diferentes, também o utilizamos para fins variados, gerando então processos diferentes com o mesmo programa. Ficou clara essa diferença? Então vamos seguir! Dentro da quantia de processos, temos o monotarefa e o multitarefa. O monotarefa (também chamado de monoprogramação) executa uma tarefa por vez no computador, como as máquinas antigas faziam (estu- dadas na Seção 2 da Unidade de estudo 1, com jobs e batches), e fazem praticamente todas as shell linha de comando monousuários. Mas, nesse caso, os recursos da máquina não são aproveitados por completo, já que quando o processo permanece aguardando uma informação, o sistema fica parado até a resposta do usuário, mesmo tendo outra tarefa na fila. Já no caso do multitarefa (ou multiprogramação) há suporte para mais de um processo ser executado por vez E, então, caso um processo esteja em espera, o próximo é processado, e quando a resposta do processo anterior for recebida, ele volta a ser processado. Esse método dá mais agilidade ao computador, já que ele não fica ocioso, aguardando por uma informação que pode demorar a chegar a ele. Hoje em dia, a maioria absoluta dos siste- mas operacionais se utiliza desse modo e isso é visualizável pelo simples fato de você poder abrir mais de um programa ao mesmo tempo. Como você deve lembrar, cada programa aberto gera um processo. Mas aguarde para saber mais sobre esse gerenciamento entre eles na Seção 4. Quanto ao processamento, tam- bém existem duas classes: mono- processamento e multiprocessa-mento. O monoprocessamento acon- tece nos casos em que o computador tem apenas um processador, pois cada pro- cessador consegue trabalhar com apenas um processo por vez. Já o multiprocessamen- to trabalha com mais de um processador trabalhando em conjunto, realizando as tarefas daquela máquina. Quanto ao processador, para ser mais específico, ele pode até tra- balhar com mais processos ao mesmo tempo. Mas, para isso, ele deve ter mais de um núcleo, uma vez que cada núcleo do processa- dor suporta apenas um processo por vez, como os processadores Dual Core (dois núcleos) ou Quad Core (quatro núcleos). Nesses ca- sos, cada núcleo recebe uma tare- fa de um processo a se executar. Dentro do multiprocessamento, há ainda duas divisões: os SO for- temente acoplados e os SO fraca- mente acoplados. Nos fortemente acoplados (ou multiprocessado- res), dois ou mais processadores se utilizam da mesma memória RAM e dos mesmos dispositivos 25FUNDAMENTOS DE SISTEMAS OPERACIONAIS de entrada/saída (E/S) para realizar os processos, o que os torna mais baratos. Já nos fracamente acoplados (ou multicomputadores), cada pro- cessador tem seu conjunto de hardware para trabalhar, deixando-os mais caros, mas também mais eficientes, já que se algum hardware falhar, o outro conjunto consegue continuar trabalhando. Figura 13: Multiprocessadores Figura 14: Multicomputadores Dentro das características que você pôde verificar nas figuras anteriores, podemos citar três tipos de sistemas operacionais: os monotarefa/mo- noprogramação (SOs mais antigos, em que a máquina suportava ape- nas um programa por vez); os multitarefa/multiprogramação (SOs um pouco mais recentes, que conseguiam trabalhar com mais de um processo em memória, mas que, devido às restrições de processamento, realizavam uma tarefa por vez); e os multiprocessamento (SOs de hoje em dia, que, com o avanço da tecnologia, conseguem realizar duas ou mais tarefas ao mesmo tempo). 26 CURSOS TÉCNICOS SENAI SeçãO 4 Gerenciamento de processos Certamente agora você já sabe que um computador pode, ao mesmo tempo, ter vários processos em execução, e que o núcleo de um pro- cessador pode apenas trabalhar com um processo por vez. Mas como o processador faz esse controle e como ele “escolhe” o processo a ser executado? Para facilitar a compreensão, vamos trabalhar com base em um desenho que contém os passos de um processo, desde quando é aberto até o mo- mento em que o programa é fechado, e, por consequência, o processo se encerra. Figura 15: Estados do processo Note que cada retângulo representa um estado do processo em si e as setas são as passagens de um estado a outro. Vamos ver a sequência dos acontecimentos conforme a ordem alfabética das setas da imagem. Acompanhe! Um processo novo é aquele que acabou de ser aberto pelo usuário, quando ele abre o programa. A seta A representa seu início, onde ele está entrando no estado pronto. O estado pronto significa que ele já está na memória RAM, na fila de processos que podem ser executados, mas por algum motivo não está sendo processado. Aqui entra a parte na qual o sistema operacional escolhe que processo será executado no momento: na seta B, o escalonamento. Por meio dele, o SO define qual processo irá para o processador. Perceba que o es- calonador, no SO, possui uma tabela com todos os processos em estado pronto, bloqueio e execução, e também inclui nessa lista os processos que forem abertos, exclui os finalizados e cuida. Nessa lista há informações como a prioridade de cada processo (pro- cessos mais cruciais ao funcionamento têm maior prioridade do que outros), local dele na memória (tanto RAM como no dispositivo de ar- mazenamento em que o programa que o gerou está instalado), arquivos abertos, entre outros. Há dois tipos de escalonamento, mas antes de falar deles é importante que conheçamos os estados de execução e blo- queio, e as passagens C, D e E. Vamos lá! No estado de execução é que o processo é realizado pelo proces- sador, onde suas tarefas são calcu- ladas e geram uma resposta. Esse estado tem três passagens (na le- tra C sua interrupção, na letra D, a espera, e na letra F, o término de sua execução). A passagem a se utilizar no momento depende do tipo do escalonamento e também se o processo terminou ou não. Mas aguarde a definição da pas- sagem a ser realizada posterior- mente. Na passagem C, a interrupção, o processo volta ao estado de pron- to para que outro possa utilizar o processador. Na letra D temos a espera. Nessa passagem, o processo foi pausa- do para esperar uma entrada ou resposta do usuário, pois não tem o que fazer se essa ação não for realizada. Imagine, por exemplo, quando você utiliza um programa de edição de texto e fica um tem- po sem digitar nada: o processo fica esperando por um comando mas, como ele não vem, o pro- cessador fica ocioso. Essa espera coloca o processo no estado de bloqueio, que é a “pausa” do processo, e é nesse estado que o processo fica até que o usuário dê a resposta necessária (no exem- plo anterior, quando você digita uma letra). Essa entrada de uma resposta é a passagem E, onde o processo volta ao estado pronto, que significa que ele pode ser pro- cessado novamente. E a passagem E é o término, que leva o processo ao estado fim. Essa passagem acontece em duas ocasiões: quando o programa foi encerrado (fechado), ou quando ele terminou as tarefas que foi programado a fazer. Agora que você já sabe o neces- sário, vamos voltar ao escalona- mento? Os tipos de escalonamen- to são: cooperativo e preemptivo. 27FUNDAMENTOS DE SISTEMAS OPERACIONAIS No escalonamento cooperativo (ou não preemptivo), conforme Ma- chado (2002, p. 139), “quando um processo está em execução nenhum evento externo pode ocasionar a perda do uso do processador”. Isso quer dizer que, nele, não existe a possibilidade da passagem C, a inter- rupção, acontecer. O processo que entra em estado de execução só sai de lá quando entra em término, por não ter mais o que fazer, ou quando está em espera, e, se esse for o caso, o processador pode receber outro processo. Mas isso pode causar um monopólio prejudicial ao funcio- namento do computador, principalmente em uma ocasião em que um processo entrou em bloqueio, pois, se outro processo entrar em execu- ção, aquele primeiro só voltará a ser executado quando o outro “deixar”. Justamente por isso, ele é um tipo de escalonamento não muito utilizado hoje em dia, mas pode-se citar como exemplos de sistemas operacionais que se utilizaram desse procedimento o MacOS 7, da Apple, e o Windo- ws 3.11, da Microsoft. Figura 16: Fluxo do processo no escalonamento cooperativo Por esse problema visto no escalonamento cooperativo, uma evolução quanto ao escalonamento foi necessária. Com essa intenção de melho- ria, surge o escalonamento preemptivo. Ele se utiliza de uma nova passagem, a interrupção (C), para melhorar o processamento. Agora o processo, além de passar por espera e término, também sai de execu- ção quando é interrompido. Essa interrupção é uma maneira de fazer com que o monopólio do escalonamento cooperativo não exista e que todos os processos trabalhem quase simultaneamente. E você lembra o porquê desse “quase”? Se não, reveja a parte em que falamos do mono- processamento. Mas lembre-se de que um processo não precisa espe- rar o outro que está em execução terminar ou entrar em bloqueio, pois há uma divisão do processador entre todos os processos abertos. Isso acontece por um processo chamado time slices (fatias de tempo), que divide o tempo de uso do processador em “fatias”, para cada processo ter seu espaço na execução. Quando esse tempo acabar ele volta para o estado pronto e o próximo processo da fila toma o seu lugar na execução. Claro que, por mais que o time slice reservar esse certo tempo de uso do processador, não quer dizer que o processo precisará desse tempo todo. Se isso acontecer, o processo “quebra” sua fatia, permitindo queoutro o substitua. Esse tempo é tão curto que faz parecer ao usuário que os vários programas que ele abriu são executados ao mesmo tempo, mas, como já vimos, isso não pode acontecer. Figura 17: Time slices Além disso, esse conceito tam- bém conseguiu implementar uma novidade muito importante: a ideia de prioridade de processo. Na computação, uma grande difi- culdade era conseguir definir qual tarefa é mais importante, para que o computador a fizesse primeiro. Com as prioridades, o SO define as tarefas mais importantes, dan- do a elas vantagem sobre as ou- tras para que sejam terminadas mais rapidamente, como aumen- tar o time slice delas ou até, depen- dendo da ocasião, fazendo como o escalonamento cooperativo fa- zia: só tirar esse processo de sua execução quando ele terminar. Você está lembrado das aplicações em tempo real? Esse foi um dos temas da seção 2 da unidade de estudo anterior. Você deve con- cordar que esses processos devem ter prioridade total no momento em que precisam ser executadas. Imagine se algum outro processo estivesse em execução no mo- mento em que alguma dessas apli- cações estivesse precisando ser executada. Ela provavelmente não conseguiria ser realizada a tempo, e isso poderia danificar todo o sis- tema e o equipamento, causando prejuízos incalculáveis. Por isso, esses sistemas utilizam o escalo- namento preemptivo. Além des- ses sistemas, outros como as fa- mílias Windows, Linux e MacOS, em suas versões mais recentes, utilizam esse escalonamento. Veja um exemplo do fluxo do proces- so de escalonamento preemptivo para entender melhor. 28 CURSOS TÉCNICOS SENAI Figura 18: Fluxo do processo no escalonamento preemptivo O escalonamento pode ocorrer em quatro mudanças de estado. Saiba quais são! 1. Pronto para execução. 2. Bloqueio para pronto. 3. Execução para bloqueio. 4. Execução para fim. Com isso, a cada mudança de estado no processo, o sistema operacional pode escolher qual processo será executado agora, verificando as priori- dades e necessidades de execução. É importante ressaltar que, nos dois últimos casos, o escalonamento é obrigatório, ou então o processador ficaria ocioso. Silberschatz (2001, p. 97) resume bem o que falamos an- teriormente. “Quando o escalonamento ocorrer apenas nos casos 3 e 4, dizemos que o esquema de escalonamento é não preemptivo ou coope- rativo; caso contrário, é preemptivo”. Em sua maioria, os programas não nos dão uma sequência fixa de coi- sas a fazer e sim a possibilidade de escolher o que queremos fazer. Mas imagine se cada uma dessas tarefas precisasse criar um processo para si. Isso ocuparia muitos recursos de uma maneira inútil. Por isso, cada processo iniciado pode ser formado por várias threads, sendo que cada uma delas contém alguma das tarefas que podem ser executadas por aquele processo. E você sabe como se chama essa utilização de vá- rias threads pelo mesmo processo? Ela se chama multithreading, trazen- do um conceito estudado anteriormente: o multiprocessamento. Nesse caso, mais de um processador pode trabalhar no mesmo processo, cada um em uma thread diferente. Há vários algoritmos de escalonamento que auxiliam na escolha do pró- ximo processo a entrar em execução. Todos se baseiam, de formas dife- rentes, em cinco critérios. Conheça cada um deles. ▪ Utilização do processador: deixá-lo ocupado pelo maior tempo possível. ▪ Throughput: quantidade de pro- cessos terminados com sucesso em certo tempo. ▪ Tempo de retorno (turnaround): intervalo de tempo entre os esta- dos de novo e fim. ▪ Tempo de espera: soma do tempo em que o processo ficou esperando no estado pronto. ▪ Tempo de resposta: tempo que o processo leva até começar a responder. Na maioria das ocasiões é melhor que os dois primeiros itens este- jam no máximo e os três últimos no mínimo possível mas, depen- dendo da ocasião, isso pode va- riar. Pronto! Agora que você já sabe como gerenciar processos, que tal trocar ideias e tirar dúvidas com o professor e os colegas? Aproveite para discutir os principais con- ceitos estudados e ampliar ainda mais os seus conhecimentos. Siga em frente! SeçãO 5 Gerenciamento de memória Você deve lembrar do estudo anterior em que um sistema ope- racional suporta a utilização de diversos processos ao mesmo tempo, todos tendo seu espaço na memória RAM e sua chance de utilizar o processador. Mas como esses processos não se confundem, por exemplo, utilizan- do as informações uns dos outros? 29FUNDAMENTOS DE SISTEMAS OPERACIONAIS Antes da resposta, é importante que você conheça dois termos sobre memória. Como sabemos, há no computador duas memó- rias diferentes: a memória RAM e o disco rígido (também chamado de HD – hard disk). Em alguns momentos dessa seção serão uti- lizadas definições mais específicas de cada uma delas. A memória RAM é a memória principal do sistema, pois é a memória mais importante para o processamento e execução das tarefas. Já o disco rígido é a memória secundária, já que os programas estão insta- lados nela, mas nem todos eles serão processados. DICA Lembre-se de que os proces- sos é que são processados, não os programas. O gerenciamento de memória tem, resumidamente, três tarefas: ao final de um processo, liberar a parte da memória que foi utiliza- da por ele; controlar a utilização da memória, sabendo quanto e que partes dela estão ou não sen- do utilizadas; e fazer a troca de informações entre as memórias primária e secundária, quando ne- cessário. Mas como acontece a liberação de memória? Ela acontece quando um processo é finalizado e libe- ra a parte da memória que estava utilizando. Mas essa liberação não quer dizer necessariamente que ele apaga as informações nela. Como você deve saber, tudo no computador se resume ao famoso código binário, mais claramente em bits, 1 ou 0. Mas veja bem! Quando um es- paço na memória é liberado, não quer dizer que essa mistura de zeros e uns se tornará apenas ze- ros, por exemplo. O que aconte- ce é que o espaço reservado na memória para aquele processo agora é dado pelo gerenciador de memória como livre, permitindo que um novo processo ocupe esse espaço. O controle da utilização da me- mória é feito pela unidade de ge- rência de memória (Memory Management Unit – MMU). Oliveira (2004, p. 99) afirma que “entre outras coisas, é a MMU que vai mapear os endereços ló- gicos gerados pelos processos nos correspondentes endereços físicos que serão enviados para a memória”. Endereços lógicos e físicos? Isso mesmo! Os endereços lógicos são os criados por cada processo para armazenar as informações necessárias para seu uso (como as variáveis que se utiliza na criação de um programa). Já o endereço físico é aquele espaço na memó- ria principal que o processo vai utilizar (as posições da memória RAM). Ficou clara a diferença en- tre esses endereços? Em frente! Vamos falar sobre algumas situ- ações que acontecem nesse con- trole da memória. Para auxiliar nessa compreensão, utilizaremos a seguinte ideia como base: possu- ímos uma memória principal (na secundária o processo é o mesmo, apenas troque os processos por programas) com 100 espaços (a soma dos valores dentro de cada imagem será essa). Esses espaços são divididos em partições, que podem ser fixas ou variáveis. Figura 19: Partições fixas Nas partições fixas, os espaços da memória têm tamanhos prede- finidos e cada processo só pode ocupar uma das partições, o que causa dois problemas principais: espaço sobrando inutilizável (di- gamos que as partições 1 e 3 estão sendo utilizadas e um processo que precisa de 12 espaços será aberto: esse novo processo só poderá ser alocado na partição 2, mas 8 espaços serão inutiliza- dos para isso); e a não criação de processos (na mesma situação an- terior, mas no caso do processo novo precisar de 25 espaços: eles não cabem em nenhuma das par- tições livres e, como cada proces- so pode ocupar apenas uma par- tição por vez,esse processo não será aberto). Por isso, as partições variáveis são mais utilizadas. Figura 20: Partições variáveis 30 CURSOS TÉCNICOS SENAI Nas partições variáveis, trabalha-se com um sistema de lacunas, que são os espaços da memória livres para os processos. Cada processo novo ocupa nas lacunas o que for preciso para que ele seja processado e tor- na o que não foi necessário em uma nova lacuna, claro, menor que a anterior. Isso resolve o primeiro problema das partições fixas, pois não há espaços completamente inutilizados. Sendo assim, quanto mais pro- cessos utilizados, menos espaço livre, sendo necessária uma busca às possíveis lacunas. Figura 21: Funcionamento das partições variáveis Observe a figura anterior. Existe o sistema operacional ocupando 30 espaços e três processos abertos ocupando, respectivamente, 21, 30 e 7 espaços cada. Ainda temos 12 espaços livres em uma lacuna. Se o pro- cesso 2 for fechado, teremos mais 30 espaços livres, mas esses espaços não se unem aos 12 anteriores pois, para isso, o processo 3 teria de ser realocado. Isso não acontece porque, se o processo realocado estiver sendo processado neste momento, o processador vai devolver a respos- ta ao local errado, causando erros. Se um programa criar um processo novo, de 19 lacunas, ele pode ocupar essa lacuna criada pelo fechamento do processo 2, criando uma nova lacuna de 11 espaços. Mas e se o novo processo precisasse de 10 espaços ao invés de 19? Qual lacuna ele ocuparia? Ele caberia nas duas lacunas. Portanto, a escolha seria do sistema ope- racional. Essa busca pode ser feita de quatro maneiras diferentes: first-fit (utiliza a primeira lacuna que tenha espaço suficiente para o processo novo), Circular-fit (idem ao anterior, mas não verifica a primeira lacuna após a ocupação do processo anterior), best-fit (utiliza a lacuna que dei- xará menos sobra) e worst-fit (inverso do anterior). A first-fit ocuparia a primeira lacuna, por ser a primeira em que cabe o novo processo; na circular-fit também, mas porque o último processo criado foi o 3, então ele “pulará” essa lacuna na busca; o best-fit utilizaria a segunda lacuna e o worst-fit utilizaria a primeira. Quanto à troca de informações entre as memórias primária e secun- dária, saiba que existem duas possibilidades principais disso acontecer. Uma delas é quando o processo for aberto (afinal de contas o programa, instalado na memória secundária, cria um processo que deverá alocar um espaço na memória primária) e quando as informações processa- das devem ser salvas na memória secundária (ao salvar um arquivo, por exemplo). Ainda há uma terceira opção, mas não são todos os sistemas operacionais que a têm: caso a memória primária esteja cheia, o siste- ma operacional reserva um espaço da memória secundária para os no- vos processos (o processamento dessas informações que ficam na memória secundária é mais lento, mas ao menos o processo pode ser aberto). Foi um grande aprendizado sobre partições fixas e partições variá- veis. E depois de conhecer as par- tições dos espaços da memória, o convite é para aprender a geren- ciar entradas e saídas. Vamos em frente? SeçãO 6 Gerenciamento de entradas e saídas De acordo com Marçula (2008, p. 165), “o sistema operacional gerencia o funcionamento do sis- tema de entrada e saída de da- dos (I/O), para isso atua como um intermediário entre o software, o hardware e os usuários”. Nesse papel, ele se utiliza dos drivers. Driver é um pequeno progra- ma, localizado no kernel do sistema operacional, que faz com que cada informação a ser recebida por um dispositivo de entrada ou a ser mostrada em um dispositivo de saída seja reconhecida e executada pelo computador. Ah, agora ficou mais claro! Saiba que os SOs já vêm com alguns drivers em sua instalação padrão, que são genéricos para o reconhe- cimento de alguns dispositivos, principalmente os mais básicos, como teclado, mouse, placas de vídeo e som, entre outros. Mas lembre-se de que para alguns dispositivos é necessário fazer a instalação do seu driver específico, que geralmente vem com ele ou pode ser baixado do site da fabri- cante. E você sabia que cada driver pode suportar um dispositivo em específico ou vários dispositivos com a mesma função? É, sim! An- tigamente, quando era necessária a troca de um dispositivo por ou- tro de um fabricante diferente, era preciso fazer a troca do SO por inteiro. Hoje é só instalar o novo driver e o dispositivo será reconhe- cido. Esse gerenciamento é muito importante, já que em cer- tos momentos os processos são parados, por pedido de um dispositivo I/O ou para aguardar uma informação do mesmo. Essas paradas se chamam inter- rupções. Existem três tipos de interrupções: externas (para pro- cessar um clique, por exemplo), internas (quando ocorrem certas ocasiões específicas do próprio programa) e as system calls (chamadas de sistema – pedido de informação do processo para o sistema operacional). Entre os dispositivos I/O, po- demos citar teclado, mouse, im- pressoras, scanners, caixas de som, microfones, discos rígidos, entre outros. Pronto para dar continuidade ao estudo? Lembre-se de que cada etapa irá complementar seu aprendizado anterior. Portanto, reúna determinação e entusiasmo e mãos à obra nos estudos! 31FUNDAMENTOS DE SISTEMAS OPERACIONAIS cante. E você sabia que cada driver pode suportar um dispositivo em específico ou vários dispositivos com a mesma função? É, sim! An- tigamente, quando era necessária a troca de um dispositivo por ou- tro de um fabricante diferente, era preciso fazer a troca do SO por inteiro. Hoje é só instalar o novo driver e o dispositivo será reconhe- cido. Esse gerenciamento é muito importante, já que em cer- tos momentos os processos são parados, por pedido de um dispositivo I/O ou para aguardar uma informação do mesmo. Essas paradas se chamam inter- rupções. Existem três tipos de interrupções: externas (para pro- cessar um clique, por exemplo), internas (quando ocorrem certas ocasiões específicas do próprio programa) e as system calls (chamadas de sistema – pedido de informação do processo para o sistema operacional). Entre os dispositivos I/O, po- demos citar teclado, mouse, im- pressoras, scanners, caixas de som, microfones, discos rígidos, entre outros. Pronto para dar continuidade ao estudo? Lembre-se de que cada etapa irá complementar seu aprendizado anterior. Portanto, reúna determinação e entusiasmo e mãos à obra nos estudos! SeçãO 7 Sistema de arquivos Certamente você já trabalhou com arquivos, certo? Então, antes de fa- larmos do sistema de arquivos, é importante definirmos corretamente o conceito de arquivo. Um arquivo é, segundo Silberschatz (2001, p. 35), “uma coleção de informações relacionadas definidas por seu cria- dor”. Marçula (2008, p. 163) complementa dizendo que “o arquivo é uma sequencia de bits representando programas, ou dados criados e uti- lizados por programas, que recebem um nome e são armazenados em dispositivos de armazenamento em massa”. Cada arquivo contém certas informações, que, apesar de variarem a cada SO, geralmente não variam muito entre: ▪ nome: nome visualizado pelo usuário (por sinal, é a única informa- ção de um arquivo que pode ser compreendida por ele); ▪ tipo: é o que faz ele ser reconhecido pelo seu programa; ▪ tamanho: espaço que ele ocupa em disco; ▪ localização: local em que ele está armazenado; ▪ permissão: que usuários podem abri-lo, modificá-lo e executá-lo, entre outras ações; ▪ hora, data e usuário: essas informações cobrem geralmente três ocasiões: criação, modificação e última abertura. O nome dos arquivos é formado da seguinte maneira: nome.exten- são. O nome é o nome com o qual o arquivo foi criado ou salvo e a extensão é a representação que faz com que o SO reconheça qual programa é responsável pelo arquivo. Quando você abre um arquivo, o SO procura em uma lista interna qual programa está listado para aquelaextensão e abre o programa para então abrir o arquivo. Mas e se a extensão não tiver nenhum programa na lista do SO? Nessa ocasião, ele pode pedir para você dizer a ele que programa deve abrir o arquivo, ou então dizer que não consegue abri-lo. É importante saber que não é o arquivo que diz qual programa o abre, é o programa que diz quais são os arquivos que ele pode abrir corretamente. Quando você instala um programa, geralmente ele configura no SO quais as ex- tensões que pode abrir. Confira agora alguns tipos de extensão comuns. ▪ Texto: txt, doc, docx. ▪ Imagem: jpg, jpeg, bmp, gif. ▪ Planilha: xls, xlsx. ▪ Apresentação: ppt, pps, pptx, ppsx. ▪ Compactador: 7z, rar, zip. ▪ Música: mp3, wma, ogg. ▪ Vídeo: mp4, avi, mpeg, mpg, wmv. ▪ Executável: bat, scr, com, cmd, exe, bin. 32 CURSOS TÉCNICOS SENAI Você já conhecia algumas dessas extensões de arquivos? Elas são bas- tante comuns. Para o usuário encontrar mais facilmente os arquivos armazenados e organizar melhor os novos, todo sistema operacional permite a criação de diretórios (que muitos usuários conhecem como pastas). Esses diretórios não interferem em nada o posicionamento dos arquivos. Ou seja, eles podem estar no mesmo diretório, mas em posi- ções bem distantes no HD. Eles são apenas uma representação lógica dos arquivos, visível pelo usuário, feita por meio de listas de localização criadas no HD, ou mapeamento, com informações sobre os arquivos contidos neles. Cada SO tem sua estrutura de organização de arquivos e reconhece-os de maneiras diferenciadas. Por isso, um instalador de certo programa serve apenas para um SO, a não ser que ele seja programado para reconhecer ou solicitar o SO e então fazer a instalação. Para entender melhor, pense no exemplo em que um programa instalado em um SO Windows não será reconhecido por um SO Linux (excluindo situações externas ao SO, como mváquina Virtual e programas de com- patibilidade). Quanto à inclusão e exclusão de arquivos no HD, a ideia é a mesma do controle de memória da memória primária, estudada na Seção 5. Além de criar, excluir arquivos e diretórios e fazer o mapeamento dos arquivos em seus diretórios, o sistema de arquivos também deve fazer a manutenção dos mesmos (permitindo ler, sobrescrever e renomeá-los) e permitir o backup de arquivos. Backup? O que é? O backup nada mais é do que uma cópia de segurança para evitar a perda das informações. Pode-se dizer que é melhor uma peça do computador estragar do que perder um arquivo: a peça pode ser trocada e o funcionamento do com- putador voltará ao normal, já a perda de um arquivo importante pode danificar todo o sistema. Em certas ocasiões pode-se dividir um disco rígido em partições. Isso faz com que o SO reconheça em um mesmo HD físico mais de um HD lógico. Um dos exemplos de utilidade é quando se quer instalar dois sis- temas operacionais na máquina: cada SO é instalado em uma partição e, a cada vez que você ligar o computador, ele solicitará em qual SO você deseja entrar (apenas um SO será utilizado por vez; para utilizar o outro, o computador deve ser reiniciado). Outra ocasião, mais comum, é a de garantir um pouco mais de segurança nos arquivos. Todos os SOs precisam ser reinstalados em certas ocasiões, como por exemplo, por sofrerem com vírus (programas que danificam o SO e os programas instalados nele) e afins ou por começarem a ter erros de execução. Geralmente, quando isso acontece, é necessário formatar (apagar) toda a partição em que ele está instalado. Isso geralmente causa perda de arquivos que, após a reinstalação do SO, provavelmente não poderão mais ser recuperados. 33FUNDAMENTOS DE SISTEMAS OPERACIONAIS DICA Dividir o HD em duas partições, sendo uma para o SO e os programas e outra para todos os arquivos, é uma possível solução. Mas essa ação não reduzirá a perda a zero, mas pelo menos manterá você com a maioria dos arquivos, já que essa partição sem SO não precisará ser formatada. Aqui você encerra mais uma unidade de estudos onde aprendeu sobre o funcionamento do sistema operacional. Viu o que é a shell e o kernel, a classificação de usuários, projeto e processos, o gerenciamento de pro- cessos, de recursos, de entradas e saídas e o sistema de arquivos. Mas não para por aqui. Ainda tem muita coisa interessante aguardando por você. Faça do seu estudo um momento enriquecedor em que teoria e prática sejam complementares. Siga com determinação! Unidade de estudo 3 Seções de estudo Seção 1 – Primeiros SOs Seção 2 – Windows Seção 3 – Linux Seção 4 – Mac OS 35FUNDAMENTOS DE SISTEMAS OPERACIONAIS Os Sistemas Operacionais SeçãO 1 Primeiros SOs Nesta seção não se falará dos sis- temas para máquinas de grande porte. O foco do estudo será ape- nas no âmbito dos sistemas cria- dos para atender os microcompu- tadores. Pronto para iniciar? Para iniciar um histórico dos sis- temas operacionais, falaremos no MS-DOS, da Microsoft. Para Capron (2004, p. 66), “embora os sistemas difiram entre si, muitas de suas funções básicas são simi- lares”, e o estudo desse pioneiro pode demonstrar isso. Na verdade, esse sistema tinha o nome de QDOS, Quick and Dirty Operating System, desenvolvido por Tim Paterson no início da década de 1980. O sistema foi adquirido pela Microsoft por um valor de U$ 50.000,00, que o denominou de MS-DOS, MicroSoft Disk Ope- rating System, e fez a venda deste para acompanhar os equipamen- tos da IBM. Ele foi um sistema monoproces- sado e monotarefa, isto é, o har- dware permitia o uso de processa- mento unitário e só permitia uma tarefa por vez. Ou, exemplifican- do, permitia que se escrevesse um texto ou se editasse uma planilha. É também preciso entender que nesse período estamos em plena época de processadores de arqui- tetura X86 de 8,16 e 32 bits. Sua característica principal é uma tela apenas de texto, não havendo as intefaces gráficas tão comuns atualmente. A tela de comandos dos sistemas atuais da Microsoft nada mais é do que o que se fazia com o MS-DOS, como você verá na figura que segue. Acompanhe com atenção! Figura 22: Prompt de comando Windows Boa parte dos comandos atuais segue os mesmos do pioneiro DOS, como o DIR A que mostra o diretório na unidade A, ou Format A, que faz a formatação da unidade A. O processo era simples, mas demandava os conhecimentos de cada comando e sua sintaxe, que quer dizer a forma correta ortográfica do comando, na ordem correta, seguido de comando para executar, o EN- TER do teclado. Nesse período ainda não existia o mouse e, por ser apenas texto, os usuá- rios apenas tinham como interface o teclado. Apesar de hoje ser impensável um sistema tão primário, ele teve uma vida útil de aproximadamente 10 anos e fez com que fosse a maior em- presa de software do planeta e hoje ainda uma gigante que detém mais de 90% do mercado mundial de sistemas operacionais. 36 CURSOS TÉCNICOS SENAI Houve, como é comum em softwares, versões ou atualizações. A primeira era o PC DOS 1.0 de agosto de 1981. Essa versão suportava “até” 256 Kb de memória RAM para disquetes de 160 KB; a versão 2.0 já admitia disquetes de 360 KB e assim foi acontecendo até que, em 2001, a empre- sa encerrou sua produção com a versão 6.22. Em 1991, um estudante, utilizando o UNIX como base, lançou um sis- tema que conhecemos hoje como LINUX. Isso começou na década de 1960 nos laboratórios da Bell Labs, com o UNICS (Uniplex Information and Computing System), e posteriormente denominado UNIX, quando a AT&T desenvolveu seu sistema. Nesse período, não havia a ideia de uma licença para uso, bastando apenas pe- dir à empresa e esta cedia o software em fita, com apenas um pagamento simbólico. O UNIX foi o primeiro sistema a administrar o protocolo TCP/IP e foi distribuído com o projeto GNU (general public licence). O estudante que lançou um sistema que conhecemos hoje como LINUX em 1991 chama-se Linus Torvalds. Seu trabalho foi sobre um MINIX, um UNIX para máquinas de pequeno porte, reescrevendo seunúcleo, o famoso kernel. Esse trabalho foi publicado na internet com o nome de Freax. Para Ferrari (2007, p. 12), seria “uma brincadeira com as palavras free (grátis) e freak (bizarro) e o X do Minix”. Mas o que prevaleceu foi mesmo LINUX. Ele podia ser copiado, por ser copyleft, modificado e utilizado, com a obri- gação de que seu desenvolvedor mantivesse o seu código livre. Sua interface com o usuário era, como o DOS, apenas texto. Aliás, é interessante que hoje os puristas ou os especialistas em Linux continuem mantendo o uso dessa forma, podendo fazer com que o sistema seja ma- nipulado apenas em interface de texto, mesmo tendo a interface gráfica. Continuando com o DOS como exemplo, é necessário conhecimento e habilidade em trabalhar com os comandos a serem digitados. Veja um exemplo de terminal Linux! Figura 23: Terminal Linux 37FUNDAMENTOS DE SISTEMAS OPERACIONAIS Como você pôde observar na figura, a tela de terminal é utilizada em todas as distribuições Linux e tem a estrutura mantida dos sistemas mais antigos. E como foi o início do Windows? Esse será o tema da seção seguinte. Em frente! SeçãO 2 Windows Para Capron (2004, p. 67), “o Windows se iniciou como um ambiente operacional para o MS-DOS, outra camada adicionada para separar o sistema do usuário e dessa forma torná-lo mais fácil de usar. O Windows teve como diferença principal o início da utilização das interfaces gráficas. Não que outros desenvolvedores, como a Apple, não tenham desen- volvido também, mas foi a Microsoft que saiu na frente e estabeleceu o padrão que utilizamos até hoje. Figura 24: As primeiras Janelas Saiba que, com a interface gráfica, a interação com o usuário passa a ser possível, além de ser possível também a utilização de dispositivos como o mouse, a própria tela do monitor, tablets para desenho etc. Também passou a ser multitarefa e, recentemente, multiprocessado. Podemos dividir os sistemas operacionais Windows em famílias para acompanhar seu histórico ao longo do tempo. Vamos lá! Família DOS: teve como precursores o MS-DOS e o OS/2, sistema desenvolvido em conjunto com a IBM. Mas a versão Windows 1.0 era a interface gráfica para o DOS e, na sequência, com acréscimo de funcio- nalidades, saíram as versões 2.0, 2.1, 3.0 e a versão 3.1, já com o uso de editores de texto e planilhas eletrônicas (Word e Excel). Família 9X: essa foi uma série de sistemas projetados para aten- der os usuários domésticos im- portante para a popularização da microinformática, que permitiu a utilização até mesmo por aqueles que não tinham familiaridade com essa tecnologia. Tivemos também o W95, o W98 e o ME, ou Millenium edition. O W98 foi uns dos mais difundidos sistemas utilizados e contava já com o navegador Internet Ex- plorer, incluía também suporte a recursos multimídia e utilização de discos com grande capacidade de armazenamento. Também in- cluía recursos de assistentes para a realização de várias tarefas que permitia a um usuário usá-los de forma mais interativa e amigável. Família NT ou Servidores: para atender o ambiente corporativo, uma série de sistemas com recur- sos avançados na manipulação de arquivos e utilização de redes LAN e WAN foi desenvolvida em paralelo aos sistemas de uso geral. Nesse caso, houve a divisão entre produtos para clientes e para ser- vidores. Para clientes, temos as ver- sões 3.1, 4.0, 2000, XP, Vista e Seven. Para servidores, temos as versões NT 4.0, 2000 Server, 2003 Server e 2008 Server. Cada versão pode ser um capítulo a parte dado o grande número de implementações que foram acres- cidas ao seu desenvolvimento. As diferenças maiores estão nos sis- temas de arquivos, na organização de diretórios, na forma em que o sistema faz sua atualização e no suporte às novas tecnologias. 38 CURSOS TÉCNICOS SENAI Figura 25: Tela inicial do Windows XP Professional Figura 26: Tela inicial do Windows Seven Professional Figura 27: Tela do Windows Seven Professional com o recurso Aero visualização de múltiplas janelas 39FUNDAMENTOS DE SISTEMAS OPERACIONAIS A última versão da Microsoft é o Seven, em substituição ao Win- dows Vista, que desde seu lança- mento trouxe vários problemas. É importante destacar que o Seven tem muito do Vista, mas trouxe várias inovações e funcionalida- des, principalmente em relação à estabilidade, facilidade de drivers e recursos para uso de touchscreen, isto é, a própria tela como interfa- ce de navegação. Vamos em busca de novas desco- bertas? A partir de agora, o foco do estudo será o Linux. Até a pró- xima seção! SeçãO 3 Linux Em relação aos sistemas Micro- soft, o Linux tem a fama de ter alta estabilidade. Uma comunida- de de usuários que troca informa- ções com maior fluidez e custo quase zero. Você deve lembrar do estudo iniciado sobre o Linux na seção 1 desta unidade, certo? No lugar das versões das famílias Windows, temos as chamadas distribuições. Mas o que são as distribuições? Para Ferrari (2007, p. 13), “é uma versão que agrupa o kernel (nú- cleo do sistema) e uma série de comandos e aplicativos de forma ordenada e funcional”. Como se trata de um sistema aberto, o número de desenvolve- dores e distribuições é enorme, sendo que algumas se destacam. Conheça cada uma delas! Distribuição Slackware: é uma distribuição em que seus usuários trabalham grande parte do tempo em modo texto, está entre as mais estáveis e muito utilizada em con- figurações de servidores. Distribuição Debian: mantida por estudantes e voluntários, sem liga- ção a empresas de desenvolvimento, trouxe uma inovação que é o apt-get, que permite a atualização e instalação de pacotes de forma simplificada. Distribuição SuSe: traz diversos recursos para usuários domésticos, é integrante do projeto opensuse, patrocinado pela Novell. Distribuição Kurumin: um projeto nacional do professor Carlos Mo- rimoto, que tinha o objetivo de rodar um sistema a partir de um CD- -ROM e permitir a popularização do Linux. Não tem continuidade, mas é possível encontrar disponível para download em algumas comunidades na internet. Distribuição UBUNTU: uma distribuição de fácil instalação em que o objetivo principal é a difusão do Linux como sistema operacional em substituição aos SOs licenciados. Muito amigável e tem atualizações completas que ocorrem em abril e outubro de todos os anos e recursos que por vezes ultrapassam os dos sistemas mais novos, como o Seven da Microsoft. Figura 28: Tela do UBUNTU 9.04 O fato de ser isento de licenças fez com que muitas instituições priva- das e estatais adotassem o Linux como sistema operacional na busca da diminuição dos custos. O governo brasileiro mantém uma secretaria exclusiva para incentivo a essa utilização. DICA Que tal saber mais sobre as licenças? Para isso, acesse o site do Portal Software Livre, do Governo Federal: <http://www.softwarelivre.gov. br>. Boa pesquisa! 40 CURSOS TÉCNICOS SENAI SeçãO 4 Mac OS A Apple, empresa que participou ativamente do desenvolvimento da criação e disseminação da microinformática, além de produzir os com- putadores também produz seu sistema operacional, O MAC OS, onal que teve como base de desenvolvimento o UNIX. Sua interface data de 1994 e, para Capron (2004, p. 72), “sua interface serviu de modelo para a maioria das interfaces gráficas disponíveis atu- almente”. Também é um sistema estável e pouco vulnerável a ataques de vírus. Mas veja bem! Um limitante é que os aplicativos devem ser desenvolvi- dos para sua plataforma, o que reduz as opções de escolha. Na área de jogos isso também acontece. Os principais clientes desse sistema são os desenvolvedores de aplica- ções gráficas. Figura 29: Área de trabalho do MAC OS E então, você gostou do conteúdo desta unidade curricular? Pois bem, aqui chegamos ao final da última unidade de estudos, onde você conhe- ceu os sistemas operacionais, viu os primeiros SOs, o Windows, o Linux e o Mac OS. Certamente esse conhecimento será muito útil em seu dia a dia de trabalho,não é mesmo? Mas não fique somente com essas infor- mações. Busque novos saberes, pratique, veja as novidades nessa área. O aprendizado não pode parar. Ele deve fazer parte da sua caminhada! 41FUNDAMENTOS DE SISTEMAS OPERACIONAIS Finalizando Parabéns, querido aluno! Você concluiu mais uma etapa na construção de suas competências profissionais. Esse curso permitiu a você conhecer melhor o funcionamento dos sistemas operacionais, o software principal no funcionamento do computador, para complementar seus conhecimentos e, no futuro, aplicá-los na construção dos seus softwares. Este curso não é tudo o que se pode falar sobre o assunto, mas o início de uma busca maior em aprimorar seu conhecimento. Mas só você que pode escolher os caminhos dessa busca, então não pare por aqui. Seja cu- rioso e persistente, pois para pessoas assim o êxito vem mais fácil. Um grande abraço e nossos sinceros votos de sucesso na sua vida pessoal e profissional! Referências 43FUNDAMENTOS DE SISTEMAS OPERACIONAIS ▪ CAPRON, H. L.; Johnson, J. A. Introdução à informática. 8. ed. São Paulo, SP: Pearson Prentice Hall, 2004. ▪ CORDEIRO, Amanda. Tecnologia e mídias digitais: interface gráfica e sua origem. Dis- ponível em: <http://tecmid.blogspot.com/2010/03/history-of-gui-graphical-user-inter- face.html>. Acesso em: 06 mar. 2011. ▪ FERRARI, Fabrício Augusto. Crie banco de dados em Mysql. São Paulo, SP: Digerati Books, 2007. ▪ MACHADO, Francis Berenger; MAIA, Luiz Paulo. Arquitetura de sistemas operacio- nais. 4. ed. Rio de Janeiro, RJ: LTC, 2002. ▪ MARÇULA, Marcelo; BENINI FILHO, Pio Armando. Informática: conceitos e aplica- ções. 3. ed. São Paulo, SP: Érica, 2008. ▪ OLIVEIRA, Rômulo Silva de; CARISSIMI, Alexandre da Silva.; TOSCANI, Simão Siri- neo,. Sistemas operacionais. 3. ed. Porto Alegre: Instituto de Informática da UFRGS: Sagra Luzzatto, 2004. (Livros didáticos). ▪ SAN, Camila. Cartão perfurado. Disponível em: <http://shelikescode.wordpress. com/2009/09/07/assim-que-o-wordpress-deixar/>. Acesso em: 26 fev. 2011. ▪ SILBERSCHATZ, Abraham; GALVIN, Peter B.; GAGNE, Greg. Sistemas operacionais: conceitos e aplicações. Rio de Janeiro, RJ: Campus, c2001. xvi, 585 p. ▪ ZAGARI, Nicola. SO-02 processos. Disponível em: <http://www.slideshare.net/zagari/ 45FUNDAMENTOS DE SISTEMAS OPERACIONAIS Equipe de Desenvolvimento de Recursos Didáticos Coordenação de Educação a Distância Beth Schirmer Coordenação Projetos EaD Maristela de Lourdes Alves Coordenação de Desenvolvimento de Recursos Didáticos Gisele Umbelino Projeto Educacional Angela Maria Mendes Israel Braglia Projeto Gráfico Daniela de Oliveira Costa Jordana Paula Schulka Juliana Vieira de Lima Design Educacional Daiana Silva Capa, Ilustrações, Tratamento de Imagens D’imitre Camargo Martins Diego Fernandes Luiz Eduardo Meneghel Diagramação Carlos Filip Lehmkuhl Loccioni Revisão e Fechamento de Arquivos Daniela de Oliveira Costa Juliana Vieira de Lima Revisão Ortográfica e Normatização SENAI/SC em Jaraguá do Sul 06_fund_sist_oper fundamentos.pdf