APOSTILA - FUNDAMENTOS DE SISTEMAS OPERACIONAIS

46 Pages • 11,591 Words • PDF • 7.8 MB
Uploaded at 2021-09-24 13:01

This document was submitted by our user and they confirm that they have the consent to share it. Assuming that you are writer or own the copyright of this document, report to us by using this DMCA report button.


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 conectadas 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, desenvolver 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 Movimento promove a discussão, a revisão e o aprimoramento dos processos de educação do SENAI. Buscando manter o alinhamento com as necessidades do mercado, ampliar as possibilidades do processo educacional, oferecer recursos didáticos de excelência e consolidar o modelo de Educaçã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 Apresentação

9

Finalizando

41

11

Referências

43

12 Unidade de estudo 1 Introdução

13

Seção 1 - O que é um sistema operacional?

14

Seção 2 - Um pouco da história

18 Unidade de estudo 2 O Funcionamento 19

Seção 1 - Como o SO funciona

19

Seção 2 - Shell e kernel

22

Seção 3 - Classificações: usuários, projeto e processos

26

Seção 4 - Gerenciamento de processos

28

Seção 5 - Gerenciamento de recursos

30

Seção 6 - Gerenciamento de entradas e saídas

31

Seção 7 - Sistema de arquivos

34 Unidade de estudo 3 Os Sistemas Operacionais 35

Seção 1 - Primeiros SOs

37

Seção 2 - Windows

39

Seção 3 - Linux

40

Seção 4 - Mac OS

8

CURSOS TÉCNICOS SENAI

Conteúdo Formativo Carga horária da dedicação Carga horária: 30 horas

Competências Analisar os recursos de sistemas operacionais, modos de processamento, compatibilidades 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.

FUNDAMENTOS DE SISTEMAS OPERACIONAIS

9

Apresentação Olá, caro aluno! Seja bem-vindo à Unidade Curricular Fundamentos de Sistemas Operacionais! Aqui você verá conceitos sobre o funcionamento do programa mais necessá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 necessidades de seu programa. Além disso, nossa intenção é dar dicas para que você escolha o melhor sistema operacional, conforme sua preferência, 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 Fundamentos de Sistemas Operacionais, Introdução ao Computador, 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 disciplinas de Informática Básica para outros cursos. Orientador de Trabalho de Conclusão de Curso para o Curso Técnico em Informática. Vicente D’Onofrio Tecnólogo em Processos Gerenciais, graduado pelo Centro Universitário Leonardo da Vinci. Atuou como professor em Arquitetura 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 Aprendizagem Industrial Manutenção de Computadores e Redes Locais do SENAI/SC. Coordenador dos Cursos Técnicos em Informática, Automação Industrial e Eletrotécnica no SENAI/SC.

FUNDAMENTOS DE SISTEMAS OPERACIONAIS

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

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 operacional? A partir de agora, veremos que sistema operacional na verdade é muito mais do que um simples programa de computador.

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.

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ônico está contida nele.

No caso do computador, funções como imprimir, copiar, colar, abrir arquivos, entre outras, são, na verdade, controladas pelo sistema operacional. Todos os programas se aproveitam disso. Mas veja bem! Quando você instala um programa em um sistema operacional, ele não precisa instalar essas funções. Apenas é necessá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 espaço desnecessário na memória do equipamento. Dessa forma, é

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á probabilidade 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.

FUNDAMENTOS DE SISTEMAS OPERACIONAIS

13

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 exemplo, 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 computador 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 processador da máquina não ficava parado quando tinha muitos afazeres. Quando 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. 14

CURSOS TÉCNICOS SENAI

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 determinado para utilizar o mesmo para suas finalidades. Aqui surge o conceito 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 errado, 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 equipamentos, 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

FUNDAMENTOS DE SISTEMAS OPERACIONAIS

15

A próxima inovação foi o multiprocessamento. Mas veja bem! Multiprocessamento é 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 desempenho não é o mesmo de, por exemplo, dois computadores com processadores de um núcleo, cada qual com seu hardware. Há duas modalidades 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 processador 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 modelo 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 justamente da maior falha do multiprocessamento como seu maior destaque. Mas, claro, para esses sistemas, há uma necessidade de mais de uma máquina funcionando ao mesmo tempo.

16

CURSOS TÉCNICOS SENAI

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 sistemas operacionais 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á!

FUNDAMENTOS DE SISTEMAS OPERACIONAIS

17

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

O funcionamento Seção 1

Como o SO funciona Segundo Oliveira (2004 p. 1), “o sistema operacional é uma camada de software colocada entre o hardware e os programas que executam tarefas para os usuários”. Por isso, ele é essencial ao funcionamento 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 entrada 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 equipamentos está correto, ela inicia o sistema operacional. Como você estudou anteriormente, todos os programas de computador a serem executados criam processos, reservando espaços na memória RAM para seu funcionamento, e o sistema operacional é que intermedeia 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 memória ROM (Read-Only Memory – memória apenas de leitura) um programa chamado Bootstrap, que contém a localização do kernel (veja a seção 2 para melhor compreensão) do sistema operacional no disco rígido ou outro

dispositivo de armazenamento em massa em que ele esteja instalado. Então, ao término dos testes da BIOS, o Bootstrap é iniciado, copia para a memória RAM o kernel 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 consiga inserir os comandos para a execução dos programas e tarefas necessários. O nome dessa interface é shell (também conhecido por sistema interpretador de comandos). A shell é uma ligação entre o usuário e o kernel do sistema operacional, para que ele compreenda o que o usuário pretende e execute a tarefa apropriada, interagindo 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 consiste 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 executadas.

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 sistema operacional. E sabe por quê? Como os comandos são predefinidos pelo próprio sistema operacional, qualquer erro que o usuário cometer fará com que aquele comando não seja executado. Hoje em dia, ele é um tipo de interface não comumente utilizado, mesmo estando presente, ao menos parcialmente, em praticamente 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, dependendo da ocasião, facilitar a compreensã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

FUNDAMENTOS DE SISTEMAS OPERACIONAIS

19

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 Windows? Então acompanhe!

Figura 6: Prompt de comando Windows

Como você pode perceber, na imagem anterior foi executado o comando DIR, que no Windows serve para analisar os arquivos e pastas contidos 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 interface? 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 começ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 susceptibilidade 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 operacional Lisa, o primeiro SO com interface gráfica e, claro, com mouse.

20

CURSOS TÉCNICOS SENAI

É 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 computador pela shell linha de comando. Acompanhe a seguir!

Figura 8: Shell e kernel

Figura 7: Tela do SO Lisa

Como falamos, a shell é uma ligação entre o usuário e o kernel do sistema 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 processos. 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 mesmo 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 instalados 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!

Depois de observar a figura ficou mais fácil de entender, você concorda? 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, acesse o hardware e realize a tarefa desejada. Pronto para mais uma etapa? Na seção seguinte você aprenderá a classificar usuários, projeto e processos. Siga com motivação para cumprir mais uma etapa importante nesta jornada!

FUNDAMENTOS DE SISTEMAS OPERACIONAIS

21

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 sobre um SO: como ele lida com os usuários? Qual é o projeto dele? E como ele interage com os processos? Essas são questões bem importantes e a partir de agora você verá as classificações de SO possíveis conforme cada uma delas. Vamos lá? Quanto à classificação por usuários, a divisão é simples: monousuá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 computador simultaneamente. Todos os sistemas operacionais 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 kernel, podem-se citar quatro tipos: núcleo monolítico, micronúcleo, sistema em camadas e máquina virtual. Nessa parte, para facilitar 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.

22

CURSOS TÉCNICOS SENAI

Mas atenção! Um projeto de núcleo monolítico (ou monobloco) é simples. 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 depois 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.

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 camada 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 privilegiado) 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.

Por fim, máquina virtual é um projeto no mínimo curioso: é um SO dentro de outro SO! Na verdade, o sistema operacional “hospedeiro” 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 é executada, como todos os programas normais, em uma janela do SO “hospedeiro”, e tem o funcionamento igual ao obtido em uma instalação direta dele, não sendo apenas uma simulação, mas sendo apenas necessário o disco de instalação do SO que se deseja instalar 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 produtividade do computador deve diminuir, e isso é verdade, pois as máquinas virtuais ocupam o mesmo hardware. Então, para suportar 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 executar seus processos nela. As maiores vantagens são o fato de que se pode utilizar mais de um tipo de SO diferente na mesma máquina, e também que se uma máquina virtual der problema, as outras, inclusive a “hospedeira”, podem continuar funcionando normalmente.

Figura 11: Sistema em camadas do Windows

FUNDAMENTOS DE SISTEMAS OPERACIONAIS

23

Saiba que existem programas gratuitos na internet para download que permitem 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 momento em que foi desenvolvido por seus programadores. Já o processo é criado quando você precisa executar o programa e não tem todas as informaçõ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 (estudadas 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

24

CURSOS TÉCNICOS SENAI

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 sistemas 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, também existem duas classes: monoprocessamento e multiprocessamento. O monoprocessamento acontece nos casos em que o computador tem apenas um processador, pois cada processador consegue trabalhar com apenas um processo por vez. Já o multiprocessamento 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é trabalhar com mais processos ao mesmo tempo. Mas, para isso, ele deve ter mais de um núcleo, uma vez que cada núcleo do processador suporta apenas um processo por vez, como os processadores Dual Core (dois núcleos) ou Quad Core (quatro núcleos). Nesses casos, cada núcleo recebe uma tarefa de um processo a se executar. Dentro do multiprocessamento, há ainda duas divisões: os SO fortemente acoplados e os SO fracamente acoplados. Nos fortemente acoplados (ou multiprocessadores), dois ou mais processadores se utilizam da mesma memória RAM e dos mesmos dispositivos

de entrada/saída (E/S) para realizar os processos, o que os torna mais baratos. Já nos fracamente acoplados (ou multicomputadores), cada processador 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/monoprogramação (SOs mais antigos, em que a máquina suportava apenas 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).

FUNDAMENTOS DE SISTEMAS OPERACIONAIS

25

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 processador 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 momento 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 escalonador, 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 (processos mais cruciais ao funcionamento têm maior prioridade do que outros), local dele na memória (tanto RAM como no dispositivo de armazenamento 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 bloqueio, e as passagens C, D e E. Vamos lá!

26

CURSOS TÉCNICOS SENAI

No estado de execução é que o processo é realizado pelo processador, onde suas tarefas são calculadas e geram uma resposta. Esse estado tem três passagens (na letra 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 passagem a ser realizada posteriormente. Na passagem C, a interrupção, o processo volta ao estado de pronto para que outro possa utilizar o processador. Na letra D temos a espera. Nessa passagem, o processo foi pausado 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 tempo sem digitar nada: o processo fica esperando por um comando mas, como ele não vem, o processador 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 exemplo 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 processado 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 necessário, vamos voltar ao escalonamento? Os tipos de escalonamento são: cooperativo e preemptivo.

No escalonamento cooperativo (ou não preemptivo), conforme Machado (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 interrupçã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 funcionamento 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 Windows 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 melhoria, 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 monoprocessamento. Mas lembre-se de que um processo não precisa esperar 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 que outro 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 também conseguiu implementar uma novidade muito importante: a ideia de prioridade de processo. Na computação, uma grande dificuldade era conseguir definir qual tarefa é mais importante, para que o computador a fizesse primeiro. Com as prioridades, o SO define as tarefas mais importantes, dando a elas vantagem sobre as outras para que sejam terminadas mais rapidamente, como aumentar o time slice delas ou até, dependendo da ocasião, fazendo como o escalonamento cooperativo fazia: 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 concordar que esses processos devem ter prioridade total no momento em que precisam ser executadas. Imagine se algum outro processo estivesse em execução no momento em que alguma dessas aplicações estivesse precisando ser executada. Ela provavelmente não conseguiria ser realizada a tempo, e isso poderia danificar todo o sistema e o equipamento, causando prejuízos incalculáveis. Por isso, esses sistemas utilizam o escalonamento preemptivo. Além desses sistemas, outros como as famílias Windows, Linux e MacOS, em suas versões mais recentes, utilizam esse escalonamento. Veja um exemplo do fluxo do processo de escalonamento preemptivo para entender melhor.

FUNDAMENTOS DE SISTEMAS OPERACIONAIS

27

▪▪ Utilização do processador:

deixá-lo ocupado pelo maior tempo possível.

▪▪ Throughput: quantidade de pro-

cessos terminados com sucesso em certo tempo.

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 prioridades 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 anteriormente. “Quando o escalonamento ocorrer apenas nos casos 3 e 4, dizemos que o esquema de escalonamento é não preemptivo ou cooperativo; caso contrário, é preemptivo”. Em sua maioria, os programas não nos dão uma sequência fixa de coisas 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, trazendo 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 diferentes, em cinco critérios. Conheça cada um deles.

28

CURSOS TÉCNICOS SENAI

▪▪ Tempo de retorno (turnaround): intervalo de tempo entre os estados 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 estejam no máximo e os três últimos no mínimo possível mas, dependendo da ocasião, isso pode variar. 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 conceitos 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 operacional 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, utilizando as informações uns dos outros?

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 utilizadas 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 instalados nela, mas nem todos eles serão processados.

DICA Lembre-se de que os processos é 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 utilizada por ele; controlar a utilização da memória, sabendo quanto e que partes dela estão ou não sendo utilizadas; e fazer a troca de informações entre as memórias primária e secundária, quando necessário. Mas como acontece a liberação de memória? Ela acontece quando um processo é finalizado e libera 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 espaço na memória é liberado, não quer dizer que essa mistura de zeros e uns se tornará apenas zeros, por exemplo. O que acontece é 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 memória é feito pela unidade de gerê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 entre esses endereços? Em frente! Vamos falar sobre algumas situações que acontecem nesse controle 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 predefinidos e cada processo só pode ocupar uma das partições, o que causa dois problemas principais: espaço sobrando inutilizável (digamos 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 inutilizados para isso); e a não criação de processos (na mesma situação anterior, mas no caso do processo novo precisar de 25 espaços: eles não cabem em nenhuma das partições livres e, como cada processo pode ocupar apenas uma partiçã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

FUNDAMENTOS DE SISTEMAS OPERACIONAIS

29

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 torna 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 processos utilizados, menos espaço livre, sendo necessária uma busca às possíveis lacunas.

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 partições dos espaços da memória, o convite é para aprender a gerenciar entradas e saídas. Vamos em frente?

Seção 6 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 processo 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 resposta 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 operacional. 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 deixará 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 secundá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 processadas 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 sistema operacional reserva um espaço da memória secundária para os no-

30

CURSOS TÉCNICOS SENAI

Gerenciamento de entradas e saídas De acordo com Marçula (2008, p. 165), “o sistema operacional gerencia o funcionamento do sistema de entrada e saída de dados (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 programa, 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 reconhecimento 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! Antigamente, quando era necessária a troca de um dispositivo por outro de um fabricante diferente, era preciso fazer a troca do SO por inteiro. Hoje é só instalar o novo driver e o dispositivo será reconhecido. Esse gerenciamento é muito importante, já que em certos 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 interrupções. Existem três tipos de interrupções: externas (para processar 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, podemos citar teclado, mouse, impressoras, 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 falarmos 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 criador”. Marçula (2008, p. 163) complementa dizendo que “o arquivo é uma sequencia de bits representando programas, ou dados criados e utilizados 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.extensã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 aquela extensã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 extensõ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. FUNDAMENTOS DE SISTEMAS OPERACIONAIS

31

Você já conhecia algumas dessas extensões de arquivos? Elas são bastante 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 compatibilidade). 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 computador 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 sistemas 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.

32

CURSOS TÉCNICOS SENAI

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 processos, 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!

FUNDAMENTOS DE SISTEMAS OPERACIONAIS

33

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

Os Sistemas Operacionais Seção 1

Primeiros SOs Nesta seção não se falará dos sistemas para máquinas de grande porte. O foco do estudo será apenas no âmbito dos sistemas criados para atender os microcomputadores. Pronto para iniciar? Para iniciar um histórico dos sistemas 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 similares”, 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 Operating System, e fez a venda deste para acompanhar os equipamentos da IBM. Ele foi um sistema monoprocessado e monotarefa, isto é, o hardware permitia o uso de processamento unitário e só permitia uma tarefa por vez. Ou, exemplificando, 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 arquitetura 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 ENTER 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 empresa de software do planeta e hoje ainda uma gigante que detém mais de 90% do mercado mundial de sistemas operacionais.

FUNDAMENTOS DE SISTEMAS OPERACIONAIS

35

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 empresa encerrou sua produção com a versão 6.22. Em 1991, um estudante, utilizando o UNIX como base, lançou um sistema 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 pedir à 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 seu nú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 obrigaçã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 manipulado 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

36

CURSOS TÉCNICOS SENAI

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 desenvolvido também, mas foi a Microsoft que saiu na frente e estabeleceu o padrão que utilizamos até hoje.

Família 9X: essa foi uma série de sistemas projetados para atender os usuários domésticos importante 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 Explorer, incluía também suporte a recursos multimídia e utilização de discos com grande capacidade de armazenamento. Também incluí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 recursos 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 servidores. Para clientes, temos as versõ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.

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 funcionalidades, 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).

Cada versão pode ser um capítulo a parte dado o grande número de implementações que foram acrescidas ao seu desenvolvimento. As diferenças maiores estão nos sistemas de arquivos, na organização de diretórios, na forma em que o sistema faz sua atualização e no suporte às novas tecnologias.

FUNDAMENTOS DE SISTEMAS OPERACIONAIS

37

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

38

CURSOS TÉCNICOS SENAI

A última versão da Microsoft é o Seven, em substituição ao Windows Vista, que desde seu lançamento trouxe vários problemas. É importante destacar que o Seven tem muito do Vista, mas trouxe várias inovações e funcionalidades, principalmente em relação à estabilidade, facilidade de drivers e recursos para uso de touchscreen, isto é, a própria tela como interface de navegação. Vamos em busca de novas descobertas? A partir de agora, o foco do estudo será o Linux. Até a próxima seção!

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 Morimoto, 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.

Seção 3 Linux

Em relação aos sistemas Microsoft, o Linux tem a fama de ter alta estabilidade. Uma comunidade 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 desenvolvedores 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 configurações de servidores.

Figura 28: Tela do UBUNTU 9.04

O fato de ser isento de licenças fez com que muitas instituições privadas 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: . Boa pesquisa!

FUNDAMENTOS DE SISTEMAS OPERACIONAIS

39

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 computadores 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 atualmente”. 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 desenvolvidos 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ê conheceu 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 informações. Busque novos saberes, pratique, veja as novidades nessa área. O aprendizado não pode parar. Ele deve fazer parte da sua caminhada!

40

CURSOS TÉCNICOS SENAI

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 curioso 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!

FUNDAMENTOS DE SISTEMAS OPERACIONAIS

41

Referências ▪▪

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. Disponível em: . 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 operacionais. 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 Sirineo,. 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: . 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:
APOSTILA - FUNDAMENTOS DE SISTEMAS OPERACIONAIS

Related documents

46 Pages • 11,591 Words • PDF • 7.8 MB

6 Pages • 1,154 Words • PDF • 155.1 KB

7 Pages • 1,755 Words • PDF • 5.3 MB

34 Pages • 9,567 Words • PDF • 2.3 MB

9 Pages • 2,197 Words • PDF • 308.5 KB

2 Pages • 313 Words • PDF • 128.8 KB

17 Pages • 837 Words • PDF • 53.1 KB

2 Pages • 788 Words • PDF • 720.6 KB

5 Pages • 1,033 Words • PDF • 363.6 KB

2 Pages • 329 Words • PDF • 18.5 KB

6 Pages • 1,581 Words • PDF • 462.9 KB