Baixe o app para aproveitar ainda mais
Prévia do material em texto
17/03/2021 Versão para impressão - Origem e Estrutura dos Sistemas Operacionais https://conteudo.catolica.edu.br/conteudos/nbt_cursos/praticas_prof_arquitetura_sitemas/tema_04/index.html?print=1&access_token=eyJ0eXAi… 1/27 Origem e Estrutura dos Sistemas Operacionais 17/03/2021 Versão para impressão - Origem e Estrutura dos Sistemas Operacionais https://conteudo.catolica.edu.br/conteudos/nbt_cursos/praticas_prof_arquitetura_sitemas/tema_04/index.html?print=1&access_token=eyJ0eXAi… 2/27 ©2018 Copyright ©Católica EAD. Ensino a distância (EAD) com a qualidade da Universidade Católica de Brasília Apresentação Fonte: https://goo.gl/AiZgLt Entender a origem e a cronologia da evolução dos sistemas operacionais ajudará bastante na compreensão desse importante assunto dentro da computação. Desse modo, faremos um rápido estudo dessa evolução, o que nos permitirá perceber como foram sendo utilizados à medida que evoluíam. Estudaremos ainda seu relacionamento com o hardware, além de conceitos importantes para o entendimento das características, funcionamento e possibilidades na utilização dos sistemas operacionais. Bons estudos! 17/03/2021 Versão para impressão - Origem e Estrutura dos Sistemas Operacionais https://conteudo.catolica.edu.br/conteudos/nbt_cursos/praticas_prof_arquitetura_sitemas/tema_04/index.html?print=1&access_token=eyJ0eXAi… 3/27 ©2018 Copyright ©Católica EAD. Ensino a distância (EAD) com a qualidade da Universidade Católica de Brasília Conteúdo Introdução Ao iniciar o estudo dos sistemas operacionais, cabe procurar respostas para duas questões bem importantes: qual a função do sistema operacional? Como esse sistema se relaciona com o hardware? O objetivo do usuário é executar programas que irão auxiliá-lo no cumprimento de suas tarefas. Esses programas podem ter as finalidades mais diversas possíveis. Logo, ao sistema operacional cabe a tarefa de facilitar e coordenar o acesso aos recursos computacionais disponíveis. Mas quais são esses recursos? Podemos classificar esses recursos em três grupos: de entrada/saída; de armazenamento; de processamento. O primeiro tem a função de fornecer ao computador os dados a serem processados e de externar o resultado desse processamento. O segundo tem por função armazenar, de modo permanente ou temporário, os dados utilizados. Por último, aos recursos de processamento, cabe a função de executar as rotinas necessárias ao cumprimento das tarefas. Conforme ilustra a figura 1. Figura 1 – Visão Geral do Sistema Operacional 17/03/2021 Versão para impressão - Origem e Estrutura dos Sistemas Operacionais https://conteudo.catolica.edu.br/conteudos/nbt_cursos/praticas_prof_arquitetura_sitemas/tema_04/index.html?print=1&access_token=eyJ0eXAi… 4/27 Fonte: Maia, 2007 Para responder a essa questão, considere a sua experiência com os dispositivos que utiliza, sejam eles computadores, tablets, smartphones e outros dispositivos. Neles, você utiliza variados programas e aplicativos. Todos eles lhe ajudam a buscar ou disponibilizar alguma informação. Podendo ser aplicativos de uso corporativo, educacional, produtividade, de mapas e navegação, entretenimento, etc. Todos estes para serem utilizados devem ser previamente instalados no dispositivo. Para Refletir Como seria um dispositivo computacional sem computador? O que difere um computador de um eletrodoméstico comum? Qual a relação do sistema operacional com o hardware? 17/03/2021 Versão para impressão - Origem e Estrutura dos Sistemas Operacionais https://conteudo.catolica.edu.br/conteudos/nbt_cursos/praticas_prof_arquitetura_sitemas/tema_04/index.html?print=1&access_token=eyJ0eXAi… 5/27 A figura 2 permite uma visão geral do que está sendo mencionado. Nela, é possível visualizar os usuários interagindo com os aplicativos que, por seu turno, estão apoiados no sistema operacional, executado em um hardware. O detalhamento do sistema operacional, seu relacionamento com os aplicativos e o hardware serão vistos ao longo das próximas aulas. Figura 2 - Visão dos Componentes de um Computador Fonte: Maia, 2007 Outra visão completa é mostrada na figura 3, na qual você pode visualizar os programas em uso, o sistema operacional e os elementos de hardware nos quais se apoia. Figura 3 - Sistema Computacional Composto de Aplicações, Sistema e Hardware Fonte: Maia, 2007 17/03/2021 Versão para impressão - Origem e Estrutura dos Sistemas Operacionais https://conteudo.catolica.edu.br/conteudos/nbt_cursos/praticas_prof_arquitetura_sitemas/tema_04/index.html?print=1&access_token=eyJ0eXAi… 6/27 História dos Sistemas Operacionais Os sistemas operacionais foram evoluindo na medida em que os computadores foram se desenvolvendo; junto com estes, foram adquirindo características associadas à evolução do hardware e de conectividade. Período Anterior aos Anos de 1940 Em 1642, Blaise Pascal inventou uma máquina de somar, visando auxiliar seu pai, que trabalhava com arrecadação de impostos. Em 1673, Gottfried Leibniz criou uma máquina que somava e multiplicava. Em 1820, Charles Colmar inventou uma máquina que realizava as quatro operações. O primeiro computador de que se tem notícia foi projetado por Charles Babbage, em 1822. Era puramente mecânico, com engrenagens, polias e correias. Esse computador não possuía sistema operacional, sendo considerado uma máquina analítica. Em 1854, George Boole criou a lógica booleana, na qual se baseia todo modelo de computação digital. Em 1890, Herman Hollerith criou o mecanismo de cartões perfurados para ajudar o processamento do censo dos EUA. Hollerith fundou, em 1896, a empresa que posteriormente se tornou a IBM. Década dos Anos de 1940 Nessa década, surgiu o que é chamado de primeira geração de computadores, na qual eram utilizados válvulas e painéis de programação. Nessa época, foi criado o Electronic Numerical Integrator and Calculator (ENIAC), na Universidade da Pensilvânia, sendo utilizado em cálculos balísticos e, posteriormente, no desenvolvimento da bomba de hidrogênio. Década dos anos de 1950 Nos anos de 1950, surgiu a segunda geração, com a utilização de transistores e de sistemas em lote (ou batch). O processamento em lote consistia em uma maneira de otimizar a utilização dos computadores até então disponíveis, os denominados mainframes. Nesse tipo de processamento, o programa a ser executado era preparado previamente. Inicialmente por meio de cartões perfurados e, em evoluções posteriores, previamente digitados. O mainframe processava um a um os programas. Essa era uma forma de otimizar a utilização desse caro recurso. A figura 4 ilustra o processamento em lote baseado em cartões perfurados. Figura 4 Processamento em Lote Baseado em Cartões Perfurados http://pt.wikipedia.org/wiki/Blaise_Pascalhttp:/pt.wikipedia.org/wiki/Blaise_Pascal http://pt.wikipedia.org/wiki/Gottfried_Leibnizhttp:/pt.wikipedia.org/wiki/Gottfried_Leibniz https://pt.wikipedia.org/wiki/Charles_Xavier_Thomashttp:/www.britannica.com/ebc/article-9362406 http://pt.wikipedia.org/wiki/Charles_Babbagehttp:/pt.wikipedia.org/wiki/Charles_Babbage http://pt.wikipedia.org/wiki/George_Boole http://pt.wikipedia.org/wiki/George_Boolehttp:/pt.wikipedia.org/wiki/Herman_Hollerith http://www.ibm.com/http:/www.ibm.com/ http://pt.wikipedia.org/wiki/Eniac 17/03/2021 Versão para impressão - Origem e Estrutura dos Sistemas Operacionais https://conteudo.catolica.edu.br/conteudos/nbt_cursos/praticas_prof_arquitetura_sitemas/tema_04/index.html?print=1&access_token=eyJ0eXAi… 7/27 Fonte: Maia, 2007 Década dos Anos de 1960 Na década dos anos de 1960, chegou-se à terceira geração de computadores, com a disseminação dos circuitos integrados e da multiprogramação. Nessa época, ocorreu um problema, pois existiam duas linhas de produtos totalmente incompatíveis. Os computadores de grande porte, utilizados em cálculos de engenharia e ciência, tal como o 7094, e os orientados a caracteres, como o 1401, utilizados por bancos e demais instituições financeiras. A IBM lançou então o System/360,que cobria desde máquinas menores até as de grande porte. Nessa época, a empresa lançou séries subsequentes, denominadas 370, 4300, 3080 e 3090. A multiprogramação surgiu nesse momento, para diminuir a ociosidade da CPU, a partir da qual a memória era dividida em partes, nas quais, em cada uma, colocava-se um job (trabalho) a ser executado. Desse modo, vários jobs poderiam ser preparados para que fossem utilizados em sequência pela CPU. Na figura 1.5 pode ser visto um mainframe da série 4.300, o IBM 4341, fabricado entre os anos de 1979 e 1986. Figura 5 - Mainframe IBM Série 4300 http://www-03.ibm.com/ibm/history/exhibits/mainframe/mainframe_PP4341.html 17/03/2021 Versão para impressão - Origem e Estrutura dos Sistemas Operacionais https://conteudo.catolica.edu.br/conteudos/nbt_cursos/praticas_prof_arquitetura_sitemas/tema_04/index.html?print=1&access_token=eyJ0eXAi… 8/27 Outras imagens podem ser vistas no IBM – Mainframe Photo Álbum. Década dos Anos de 1970 Nessa década, surgiram os minicomputadores, tais como o PDP-11. Em 1971, a Intel produziu o processador Intel 4004 e, em 1974, o Intel 8080. Estes foram seguidos pela Zilog, que lançou o Z80. Com a evolução dos processadores, surgiram então os microcomputadores. Em 1976, Steve Jobs e Steve Wozniak produziram o Apple II que, rapidamente, se tornou um sucesso. O sistema operacional utilizado predominantemente, nesses computadores, é o CP/M (Control Program Monitor), da Digital Research. Na outra extremidade do mercado, o de grande porte, era lançado o supercomputador Cray-1 capaz de realizar 100 milhões de operações de ponto flutuante por segundo (100 MFLOPS). Década dos Anos de 1980 Foi o início da quarta geração, marcada pela entrada da IBM no mercado de microcomputadores que, em 1981, lançou o IBM PC. Esse primeiro microcomputador utilizava processador Intel 8088 de 16 bits e sistema operacional Microsoft DOS (Disk Operating System). Em 1982, foi fundada a Sun Microsystems, que lançou as estações de trabalho SUN, que se utilizavam do SunOS (posteriormente, Sun Solaris). Nessa década, a Universidade de Berkeley criou sua própria versão de Unix, o BSD, introduzindo várias melhorias, em especial, associadas ao TCP/IP. Ao longo da década, surgiram os sistemas operacionais com interface gráfica, tais como o Microsoft Windows e OS/2. Década dos Anos de 1990 http://www-03.ibm.com/ibm/history/exhibits/mainframe/mainframe_album.html http://pt.wikipedia.org/wiki/Apple_IIhttp:/pt.wikipedia.org/wiki/Apple_II http://www-03.ibm.com/ibm/history/exhibits/pc25/pc25_intro.html 17/03/2021 Versão para impressão - Origem e Estrutura dos Sistemas Operacionais https://conteudo.catolica.edu.br/conteudos/nbt_cursos/praticas_prof_arquitetura_sitemas/tema_04/index.html?print=1&access_token=eyJ0eXAi… 9/27 Nessa década se consolidaram os sistemas operacionais com interface gráfica. Com o surgimento da Internet, a arquitetura cliente/servidor passou a ser utilizada também fora de redes locais. Surgiram ainda os softwares abertos (open source), com destaque para os sistemas operacionais FreeBSD e o Linux. Década dos Anos de 2000 Essa década caracteriza-se por: demanda cada vez maior por processadores e sistemas cada vez mais eficientes, surgimento de variadas interfaces de interação entre o usuário e a máquina; miniaturização e mobilidade crescentes, o que, aliado às tecnologias de redes sem fio, têm levado a computação a locais e atuações antes não utilizados, o que tem possibilitado uma informatização sem precedentes. Os sistemas operacionais estão cada vez mais presentes, sendo aplicados em dispositivos diversos, tais como PDA, telefones celulares, eletrodomésticos etc. Década dos Anos de 2010 Essa década caracteriza-se pela continuada miniaturização dos circuitos, processadores e memória que permitem o surgimento de dispositivos ainda mais compactos, o que aliado às novas tecnologias de rede sem fio possibilitaram que fossem levados ou instalados em variados locais. Surgindo aí a portabilidade real de fato, com dispositivos realmente móveis e integrados no dia a dia dos usuários. O computador deixou de ser algo que se tinha instalado em uma mesa no escritório ou em casa, passando a ser utilizado em massa. Seja junto do usuário, como um dispositivo portátil, ou mesmo integrado ao vestuário, assim como instalado em eletrodomésticos e embarcado em veículos coletivos e particulares de toda ordem. É a década dos smartphones e da Internet das Coisas (IoT – Internet of Things). Os Diversos Tipos de Sistemas Operacionais Para Saber Mais A história do computador contém vários fatos interessantes e que mudaram o mundo como é hoje. Muitos destes estão relacionados no vídeo "History Of The Computer Documentary", que traça um cenário de evolução dos computadores desde de Charles Babbage até os dias atuais. https://www.youtube.com/watch?v=mFdUqqwzbVs 17/03/2021 Versão para impressão - Origem e Estrutura dos Sistemas Operacionais https://conteudo.catolica.edu.br/conteudos/nbt_cursos/praticas_prof_arquitetura_sitemas/tema_04/index.html?print=1&access_token=eyJ0eX… 10/27 Um sistema operacional pode ser aplicado nos mais diversos tipos de dispositivos existentes. Nesse item, mencionamos os mais comuns e que fazem parte de nosso dia a dia, desde sistemas de grande porte até pequenos cartões inteligentes (smart cards), relacionados a seguir. Sistemas Operacionais Para Computadores de Grande Porte Computadores de grande porte são utilizados por grandes empresas e centros de pesquisa. A finalidade desses computadores é lidar com grandes volumes de processamento, tais como análise de crédito por grandes bancos ou simulações como as efetuadas para prospecção de petróleo e gás ou para fins meteorológicos. Sistemas Operacionais Para Computadores Pessoais Computadores pessoais visam oferecer ao usuário boas condições de interação na realização de suas tarefas, sejam essas de trabalho ou lazer, sendo utilizados para uso geral. Permitem: acesso à Internet – para fins diversos, inclusive interação com outras pessoas, via mensageiros instantâneos; utilização de suítes de escritório - editores de texto, planilha eletrônica etc.; uso de programas multimídia, como vídeos e músicas; interagir com variados tipos de dispositivos de E/S – gravadores de mídias diversas, joysticks para jogos etc. Sistemas Operacionais Para Dispositivos Móveis Os dispositivos móveis surgiram nas últimas duas décadas, e com a miniaturização dos componentes e o amplo acesso às redes sem fio, permitiram que fossem incorporados no dia a dia das rotinas pessoais e empresarias. Presente nos tablets e smartphones tem por finalidade prover, na medida do possível, acesso aos mesmos programas e serviços disponíveis em computadores pessoais. Além de uma ampla facilidade decorrente do acesso em qualquer lugar, inclusive em movimento. Computadores pessoais visam oferecer ao usuário boas condições de interação na realização de suas tarefas, sejam estas de trabalho ou lazer, sendo utilizados para uso geral. Permitem: acesso à Internet – para fins diversos, inclusive interação com outras pessoas, via mensageiros instantâneos; utilização de suítes de escritório - editores de texto, planilha eletrônica etc.; uso de programas multimídia, como vídeos e músicas; interagir com variados tipos de dispositivos de E/S – gravadores de mídias diversas, joysticks para jogos etc. Sistemas Operacionais Para Servidores Sistemas operacionais para servidores podem ser executados em servidores de grande porte, servidores, estações de trabalho ou mesmo computadores pessoais. Podem fornecer diversos serviços, podendo atuar como: servidores web; servidores de arquivos; servidores de impressão, entre outros. 17/03/2021 Versão para impressão - Origem e Estrutura dos Sistemas Operacionais https://conteudo.catolica.edu.br/conteudos/nbt_cursos/praticas_prof_arquitetura_sitemas/tema_04/index.html?print=1&access_token=eyJ0eXA… 11/27 São os mais utilizados em ambiente de Datacenter para suportar os serviços básicosde rede, de nuvem, e de interligação de programas e aplicativos com o backend destes hospedados em nuvem nos Datacenters. Sistemas Operacionais Para Aplicações em Tempo Real Sistemas operacionais para aplicações em tempo real têm o tempo como um fator crítico. São aplicados em equipamentos que possuem prazos rígidos para a execução das tarefas, tais como máquinas empregadas em processos industriais. Sistemas Operacionais Embarcados Como exemplos, podem ser citados: tablets, smartphones, PDA, telefones celulares, eletrodomésticos e embarcados. Os dispositivos que os utilizam geralmente têm sérias limitações quanto à capacidade de processamento, memória e energia que podem utilizar. Existem vários casos de sistemas operacionais embarcados que possuem também características de tempo real. Sistemas Operacionais Para Cartões Inteligentes Os sistemas operacionais para cartões inteligentes são utilizados em dispositivos de tamanho similar a um cartão de crédito. Esses dispositivos possuem uma restrição de consumo de memória e energia bem menores que os do tipo embarcado. Em geral, dedicam-se a uma única função como, por exemplo, executar pagamentos bancários. Arquitetura Típica de um Sistema Operacional Para que possamos estudar a arquitetura de um sistema operacional é oportuno que vejamos os principais elementos associados a ele. Iniciando pelo ponto de vista do usuário, temos as aplicações. Ligados a essas temos os utilitários, que permitem uma interação dos usuários e aplicações com o sistema operacional. Em seguida, temos o próprio sistema operacional, que se apoia ainda sobre o hardware. A figura 6 apresenta esses elementos. Figura 6 - Arquitetura de um Sistema Operacional Para Refletir Qual a razão dos sistemas operacionais de um servidor ou de um smartphone, serem tão diferentes? Quais as causas e consequências dessas diferenças? 17/03/2021 Versão para impressão - Origem e Estrutura dos Sistemas Operacionais https://conteudo.catolica.edu.br/conteudos/nbt_cursos/praticas_prof_arquitetura_sitemas/tema_04/index.html?print=1&access_token=eyJ0eX… 12/27 Fonte: Maia, 2007 Monolítica Um sistema operacional pode ser considerado monolítico ou não. Os sistemas operacionais monolíticos são obsoletos e/ou tem aplicação limitada. Atualmente, a preferência é por dispositivos cuja arquitetura seja em camadas e com uso de Kernel ou microkernel. Sendo exceção dispositivos para aplicações em tempo real e alguns de uso industrial. A arquitetura monolítica se refere a um único programa que pode ter até sido compilado em separado, mas foi unificado (linkado) em um programa executável. O desenvolvimento ou manutenção desse tipo de código é complicado. O sistema operacional DOS da Microsoft é monolítico. Organização em Camadas A arquitetura em camadas surgiu com a necessidade de melhorar o processo de desenvolvimento e manutenção de um código mais complexo. Nessa abordagem, o sistema é organizado em camadas, nas quais cada uma exerce um conjunto bem determinado de funções. Além de facilitar a escrita e manutenção do código, permite a organização de modos de acesso associados às camadas. Tanto o Unix quanto o Windows, em suas versões mais recentes, utilizam essa arquitetura, que apresenta duas camadas: a primeira, como acesso não privilegiado (modo usuário) e a segunda, com acesso privilegiado (modo kernel). 17/03/2021 Versão para impressão - Origem e Estrutura dos Sistemas Operacionais https://conteudo.catolica.edu.br/conteudos/nbt_cursos/praticas_prof_arquitetura_sitemas/tema_04/index.html?print=1&access_token=eyJ0eX… 13/27 Microkernel O conceito de microkernel surgiu em 1980, na Universidade Carnegie-Mellon. A ideia era possuir um kernel (núcleo) menor. Atualmente, essa é uma tendência na maior parte dos sistemas operacionais. Para isso, os serviços disponibilizados pelo sistema são executados como processos, nos quais cada um coordena as funções de gerenciamento de arquivos, memória, processos e escalonamento. Os serviços, nesses casos, são todos executados no modo usuário, sem acesso direto ao sistema. Os processos se comunicam entre si e com o microkernel, por meio de mensagens. Quando determinado processo deseja acessar o hardware, ele o faz por meio de uma mensagem ao microkernel, conforme ilustra a figura 7 a seguir. Figura 7 - Arquitetura Computacional com Microkernel Fonte: Maia, 2007 Essa abordagem propicia algumas vantagens. A primeira diz respeito à segurança propiciada pelo acesso restrito, já que somente o microkernel possui acesso direto ao hardware. Eventuais conflitos nos processos podem causar somente a parada dos processos envolvidos, permanecendo então os demais processos e o servidor em execução normal. A utilização de microkernel facilita a utilização de múltiplos processadores, seja através de uma única máquina com diversos processadores ou de um ambiente distribuído em que as máquinas podem estar distantes umas das outras. 17/03/2021 Versão para impressão - Origem e Estrutura dos Sistemas Operacionais https://conteudo.catolica.edu.br/conteudos/nbt_cursos/praticas_prof_arquitetura_sitemas/tema_04/index.html?print=1&access_token=eyJ0eX… 14/27 Porém, a implementação desse tipo de solução é difícil. Na prática, o que existe atualmente é uma combinação entre o modelo em camadas e o de microkernel. Mas o que o sistema operacional faz realmente? Para que você possa entender a real função do sistema operacional, é necessário visualizar os elementos que interagem com ele. Até aqui, você viu que o sistema operacional lida com o processador, os dispositivos de entrada e saída, a memória e os dispositivos de armazenamento. O funcionamento de todos esses elementos não é sequencial, havendo momentos em que existe disputa por recursos, ou mesmo enfileiramento. Logo, cabe ao sistema operacional gerenciar tudo isso. Entre as atividades gerenciadas pelo sistema operacional estão: criar e eliminar processos e threads; sincronizar a comunicação entre processos e threads; escalonar e controlar processos e threads; gerenciar a memória; gerenciar dispositivos de entrada e saída; gerenciar o sistema de arquivos; efetuar a segurança do sistema. Alguns Conceitos Comuns aos Sistemas Operacionais As características de um sistema operacional estão associadas ao hardware em que é executado. Desse modo, a maneira como gerenciam processos, memória, entrada/saída, arquivos e a segurança, varia entre os sistemas. Apesar disso, os conceitos básicos associados aos diversos sistemas operacionais existentes são os mesmos. Neste item, você conhecerá alguns desses conceitos. Processos Um processo é um programa que está sendo executado. Um sistema operacional deve lidar com muitos processos, ou seja, deve executar vários deles, inclusive ao mesmo tempo. Por enquanto, considere "fatias de tempo"; a cada fatia, um processo é executado. Terminada uma fatia, o processador passa a executar outro processo, alternando, desse modo, todos os processos a executar. Quando um processo é interrompido, é posteriormente retomado a partir de onde havia parado. A velocidade com que alterna todos os processos e retorna ao primeiro é tão elevada que a impressão causada é que o sistema operacional está executando várias tarefas ao mesmo tempo. AB Destacar 17/03/2021 Versão para impressão - Origem e Estrutura dos Sistemas Operacionais https://conteudo.catolica.edu.br/conteudos/nbt_cursos/praticas_prof_arquitetura_sitemas/tema_04/index.html?print=1&access_token=eyJ0eX… 15/27 Um processo é composto de seu espaço de endereçamento e de uma entrada na tabela de processos. Deadlocks Deadlock é uma situação muito comum, que ocorre nos sistemas operacionais durante a execução de vários processos ao mesmo tempo. Isso ocorre quando dois processos ficam bloqueados, um esperando pelo outro. Considere, para isso, dois processos: o primeiro processo (P1) aloca um recurso A para uso; enquanto isso, o segundo processo (P2) aloca um recurso B para uso. Em um dado momento, o processo P1 solicita acesso também ao recursoB, porém, sem ainda liberar o recurso A. Nesse mesmo instante, o processo P2, por coincidência, solicita acesso ao recurso A, sem liberar o uso de B. Ocorre então o deadlock. Nesse instante, o processo P1 vai ficar esperando a liberação do recurso B, enquanto o processo P2 fica aguardando o recurso A, sendo que nenhum deles liberou o recurso já em uso. Gerenciamento de Memória Os dispositivos computacionais utilizam uma memória para apoio aos programas que estão em execução. Em um sistema operacional simples, somente um programa por vez pode ocupar a memória. Logo, para alternância de um processo a outro, todas as informações devem ser salvas e o processo removido da memória, sendo em seguida colocado o próximo em memória. Os sistemas operacionais que utilizamos na prática possuem a capacidade de manter em memória vários processos ao mesmo tempo. Devem, portanto, controlar o acesso à área de memória ocupada por cada um, prevenindo que outros acessem esses espaços reservados. É desejável que todo o espaço de endereçamento a ser utilizado pelos programas seja menor do que a memória disponível, permitindo que todos sejam mantidos em memória. Caso o espaço seja maior do que a memória disponível, será utilizada uma técnica denominada de memória virtual (swap). Nesse caso, parte do espaço de endereçamento será mantida em disco. Entrada e Saída Os dispositivos computacionais possuem interfaces de entrada e saída. O primeiro é aquele por meio do qual passamos ao computador as informações ou dados a serem processados enquanto, pelo de saída, o computador apresenta o resultado das operações solicitadas. O dispositivo de entrada mais comum é o teclado e o de saída mais comum é a tela. Entretanto, existem muitos outros, tais como: mouse; impressora; unidades de disco ou fita; placa de rede; porta serial; porta paralela etc. Existem ainda outros que podem ser 17/03/2021 Versão para impressão - Origem e Estrutura dos Sistemas Operacionais https://conteudo.catolica.edu.br/conteudos/nbt_cursos/praticas_prof_arquitetura_sitemas/tema_04/index.html?print=1&access_token=eyJ0eX… 16/27 simultaneamente de entrada e saída, como telas sensíveis ao toque. Sistema de Arquivos Sistema de arquivos é outro conceito muito importante no estudo dos sistemas operacionais. Os arquivos guardam informações que são manipuladas pelos programas e pelo próprio sistema. Para que um arquivo possa ser lido, deve primeiramente ser localizado e depois aberto. Após ser manipulado, podendo inclusive ter seu conteúdo alterado, deve ser salvo e fechado. Ao sistema operacional cabe a organização e manipulação desses arquivos. Uma forma muito comum de os sistemas operacionais organizarem seus dados é sob a forma de diretórios. Cada diretório (ou pasta) agrupa vários arquivos. Segurança Uma vez que muitas informações estão armazenadas em um computador, é necessário um controle quanto ao acesso e modificação dos dados. Isso é necessário tanto para proteger o sistema operacional quanto os próprios dados dos usuários de acessos indevidos, inclusive os causados por vírus e outras pragas virtuais. Shell É função do sistema operacional a execução de chamadas ao sistema. Vários programas que não fazem parte do sistema operacional necessitam de acesso a variados recursos; entre estes estão editores, compiladores, ligadores e interpretadores. Analisando o caso dos interpretadores, eles possuem algumas características. Tomemos como exemplo o Shell do Unix/Linux. O usuário, quando se conecta, tem um interpretador de comandos (Shell) iniciado; este se torna a entrada e saída padrão do usuário. É por meio dele que o usuário digita seus comandos e recebe seus resultados, podendo, se for o caso, modificar a entrada ou saída dos dados. Por exemplo: pode utilizar como entrada um arquivo e como saída a impressora. System Calls Neste item, começaremos por um elemento presente em todo sistema operacional: as "chamadas ao sistema", denominadas System Calls, em ambiente Unix ou Application Program Interface (API), em ambiente Windows. As System Calls funcionam como uma interface para acesso ao núcleo do sistema operacional. Desse modo, quando um usuário ou aplicação solicitam algum serviço, uma chamada de sistema é realizada. 17/03/2021 Versão para impressão - Origem e Estrutura dos Sistemas Operacionais https://conteudo.catolica.edu.br/conteudos/nbt_cursos/praticas_prof_arquitetura_sitemas/tema_04/index.html?print=1&access_token=eyJ0eX… 17/27 Cada serviço possui uma chamada de sistema associada. Cada sistema operacional possui seu próprio conjunto de chamadas e formas de fazê-lo. A figura 8 mostra o esquema de interação entre aplicações, System Calls, núcleo do sistema operacional e o hardware. Figura 8 - Interação das System Calls com o Hardware Fonte: Maia, 2007 Uma tentativa de padronização das chamadas, denominada POSIX, foi proposta. O objetivo era permitir que aplicações desenvolvidas conforme as chamadas padronizadas pudessem ser executadas em qualquer sistema operacional que suportasse POSIX. Para que você possa entender adequadamente a localização e função dessas chamadas ao sistema, considere o seguinte exemplo: O programador, ao escrever o código de um programa, o faz utilizando uma linguagem de programação alto nível (por exemplo: Pascal, C ou C++). O compilador então converte esse código de alto nível em chamadas ao sistema apropriadas à arquitetura do hardware onde será utilizado. Existem muitas chamadas ao sistema que, como se disse, variam conforme o sistema operacional. Todavia, podem ser reunidas em quatro grupos: Gerenciamento de processos e threads – criação, eliminação, sincronização, comunicação e informações. Gerenciamento de memória - alocação e liberação de memória. Gerenciamento de arquivos – abrir, ler, gravar, fechar ou eliminar arquivos; criar, alterar e eliminar diretórios; obter informações de arquivos e diretórios. Gerenciamento de dispositivos – alocar ou liberar operações de entrada ou saída e obter informações sobre dispositivos. Modos de Acesso O acesso aos arquivos, à memória e aos dispositivos deve ser controlado. A razão para isso é que um acesso indevido pode causar sérios problemas. Imagine se cada aplicação resolve que vai acessar determinado setor do disco rígido, cada uma quando bem entender. Quais problemas isso poderia causar? https://pt.wikipedia.org/wiki/POSIX 17/03/2021 Versão para impressão - Origem e Estrutura dos Sistemas Operacionais https://conteudo.catolica.edu.br/conteudos/nbt_cursos/praticas_prof_arquitetura_sitemas/tema_04/index.html?print=1&access_token=eyJ0eX… 18/27 Como os recursos do computador são todos compartilhados, faz-se necessário um controle desse acesso. Esse controle pode ser efetuado de dois modos diferentes: No primeiro modo, algumas instruções mais críticas, ou privilegiadas, somente podem ser executadas pelo sistema operacional. Nesse caso, os aplicativos devem solicitar ao sistema que execute determinada operação. O sistema então a executa, após verificar a validade de tal solicitação, encaminhado o resultado a quem a solicitou. Evitam-se assim problemas de segurança ou de integridade dos dados. É o denominado modo kernel (ou supervisor). No segundo modo, as instruções não críticas, ou não privilegiadas, somente podem ser executadas se o usuário ou aplicação possuírem autorização para tal. É o denominado modo usuário. A melhor maneira de controle da segurança é permitir que somente o sistema operacional tenha acesso às instruções encaminhadas. Desse modo, as chamadas de sistema são todas encaminhadas ao sistema operacional. Essa abordagem vale tanto para acesso ao processador quanto aos demais dispositivos. Alguns sistemas operacionais permitem que a aplicação efetue uma chamada de sistema ao kernel que, então, altera o acesso do modo usuário para o modo kernel; daí a aplicação ganha acesso ao recurso (por exemplo: processador). Após executada a rotina, o modo usuário é reativado, retirando os privilégios de acesso. O sistema operacional MS-DOS, por exemplo,não possuía esse recurso de utilização de modo usuário ou modo kernel, uma vez que foi desenvolvido para a arquitetura Intel 8088. Já a arquitetura Intel x86 possui esse recurso, utilizado pelos sistemas operacionais Windows 2000 e outros mais recentes, além do Linux e Solaris. Máquina Virtual Máquina virtual é um assunto bem atual. Possivelmente, você já deve ter ouvido falar sobre isso, lido algo a respeito, ou mesmo já a utiliza no dia a dia. Mas você sabe do que se trata? E como funciona? Nos itens anteriores, você já estudou que o sistema operacional funciona sobre um hardware específico. Sabe também que, quando um programa é criado, é feito para um determinado sistema operacional. Ocorre que, atualmente, tem-se frequentemente a necessidade de executar mais de um sistema operacional, ao mesmo tempo, em um determinado computador ou servidor. Qual a razão dessa necessidade? Existem vários motivos para isso. O primeiro é a necessidade de executar em um mesmo hardware aplicações ou sistemas feitos para sistemas operacionais diferentes. Por exemplo, por limitação de quantidade de servidores disponíveis. É muito comum 17/03/2021 Versão para impressão - Origem e Estrutura dos Sistemas Operacionais https://conteudo.catolica.edu.br/conteudos/nbt_cursos/praticas_prof_arquitetura_sitemas/tema_04/index.html?print=1&access_token=eyJ0eX… 19/27 uma empresa ter vários sistemas, às vezes dezenas deles, possuindo uma quantidade inferior de equipamentos que os suportem. A solução é o compartilhamento. É a utilização de ambiente virtualizado. O segundo motivo diz respeito às questões de segurança e/ou gerenciamento de ambientes complexos. Você pode ter várias instalações de um determinado sistema operacional em execução em um dado computador. Cada uma destas instalações terá somente o que for necessário para atender ao programa que for ser executado ali. Pense nas vantagens de segurança e de gestão que pode oferecer. Se sua empresa for um Datacenter, prestando serviços de hospedagem variados (servidores web, e-mail, FTP, banco de dados etc.) aos seus clientes, você pode alocar cada cliente em um dos ambientes em execução. Se, por outro lado, todos os serviços são hospedados em sua própria empresa, você pode optar por colocá-los separadamente em máquinas virtuais diferentes. O impacto dessa decisão é que um eventual problema de segurança em uma máquina (tal como uma invasão) não compromete as outras. Além disso, você pode ligá-las e desligá-las separadamente. Pode ainda efetuar uma cópia completa de uma instalação em poucos minutos, colocando-a para executar no mesmo servidor ou em outro. Máquinas virtuais podem ser utilizadas em computadores pessoais, em servidores ou mesmo em mainframes. A única limitação é a capacidade de processamento e de memória do hardware. Máquina virtual é um recurso que adiciona uma camada extra entre o sistema operacional e o hardware. Essa camada adicional emula um hardware. Desse modo, o sistema operacional instalado sobre a máquina virtual "pensa" que está interagindo diretamente com o hardware. Assim, é possível instalar mais de um sistema operacional sobre essa camada adicional. Cada uma dessas instalações acessa a máquina virtual como se estivesse acessando o hardware. Cabe a essa máquina virtual a interação com o hardware, conforme ilustra a figura 9. Figura 9 - Hardware com Execução de Três Máquinas Virtuais 17/03/2021 Versão para impressão - Origem e Estrutura dos Sistemas Operacionais https://conteudo.catolica.edu.br/conteudos/nbt_cursos/praticas_prof_arquitetura_sitemas/tema_04/index.html?print=1&access_token=eyJ0eX… 20/27 Fonte: Tanembaum, 2003 Nesta aula, você estudou a história dos sistemas operacionais, podendo acompanhar sua evolução e utilização ao longo do tempo. Conheceu os diferentes tipos de aplicações para os sistemas operacionais que podem ser utilizados desde em um pequeno dispositivo móvel, até em um grande computador, incluindo sistemas de tempo real. Em seguida, foram mencionados alguns conceitos importantes e comuns a todos os sistemas operacionais, que serão estudados em detalhes mais adiante por enquanto, estes conceitos nos permitirão avançar no estudo desta disciplina. Para Refletir O que difere um computador (ou smartphone) de um eletrodoméstico comum? Em tempo de Internet das Coisas (IOT) como isso afeta o seu dia a dia e os das demais pessoas. Como seria um computador sem sistema operacional? Isso é possível? Como seria a sociedade nos dias de hoje sem os computadores? Como seriam os serviços públicos, mas básicos? Haveria luz elétrica? Tratamento de água? Como seriam os hospitais? Qual é o sistema operacional dos dispositivos a sua volta (computadores, celulares, etc.)? Quais são monolíticos? Quais são em camadas? Relacione ao menos vinte tipos de casos presentes em seu cotidiano. 17/03/2021 Versão para impressão - Origem e Estrutura dos Sistemas Operacionais https://conteudo.catolica.edu.br/conteudos/nbt_cursos/praticas_prof_arquitetura_sitemas/tema_04/index.html?print=1&access_token=eyJ0eX… 21/27 Os itens estudados serviram como preparo para os próximos conteúdos tais como gerenciamento de processos, de memória e de entrada/saída, três conceitos primordiais ao entendimento do funcionamento dos sistemas operacionais existentes. Você pode estudar também a estrutura de um sistema operacional, podendo perceber como se relaciona com os usuários, seus aplicativos e com o hardware. Em seguida, viu as funções que devem ser realizadas pelo sistema operacional, tais como gerenciar a utilização do processador, da memória, dos dispositivos de entrada e saída e do sistema de arquivos. Na sequência, abordou-se o tema "chamada de sistema" ou system calls e seu funcionamento como uma interface entre o usuário, seus aplicativos e o sistema operacional. Entre as chamadas existentes foram mencionadas algumas como: manipulação de processo; alocação de memória; acesso a arquivos; gerenciamento de dispositivos. Então, você estudou o modo de acesso, por meio do qual se pode controlar melhor o acesso ao sistema operacional e, em especial, ao hardware; isso é feito por meio do acesso em modo usuário ou acesso em modo privilegiado (modo kernel), sendo que, nesse último, as aplicações encaminham as solicitações ao sistema para que sejam efetuadas. Assim, adiciona-se um recurso a mais de segurança ao sistema operacional. Mencionaram-se ainda a arquitetura monolítica e a multicamada, com as vantagens desta última. Ao conceito de multicamada acrescentou-se o conceito de microkerne, possibilitando uma visão da estruturação dos sistemas operacionais atuais. Por último, foram vistos os conceitos associados a máquinas virtuais, descrevendo-se suas aplicações e vantagens. 17/03/2021 Versão para impressão - Origem e Estrutura dos Sistemas Operacionais https://conteudo.catolica.edu.br/conteudos/nbt_cursos/praticas_prof_arquitetura_sitemas/tema_04/index.html?print=1&access_token=eyJ0eX… 22/27 ©2018 Copyright ©Católica EAD. Ensino a distância (EAD) com a qualidade da Universidade Católica de Brasília Na Prática "Prezado(a) estudante, Esta seção é composta por atividades que objetivam consolidar a sua aprendizagem quanto aos conteúdos estudados e discutidos. Caso alguma dessas atividades seja avaliativa, seu (sua) professor (a) indicará no Plano de Ensino e lhe orientará quanto aos critérios e formas de apresentação e de envio." Bom Trabalho! Considerando os sistemas operacionais a sua volta, elabore um mapa mental, organizando-os por tipo. No mapa, procure indicar aqueles utilizados em dispositivos móveis, os utilizados em computadores pessoais, os destinados a servidores, aqueles de uso embarcado, entre outros. Quantos sistemas operacionais você consegue relacionar? Uns 15, 20, 50? Elabore um texto dissertativo sobre os sistemas operacionais utilizados atualmente, agrupando-os em categorias. Inclua uma pequena descrição (ao menos um parágrafo) para descrever a categoria, seguida de uma breve explanação (ao menos doisparágrafos) sobre as potencialidades e as limitações de cada sistema operacional conhecido. Atividade 1 Atividade 2 17/03/2021 Versão para impressão - Origem e Estrutura dos Sistemas Operacionais https://conteudo.catolica.edu.br/conteudos/nbt_cursos/praticas_prof_arquitetura_sitemas/tema_04/index.html?print=1&access_token=eyJ0eX… 23/27 Os sistemas operacionais têm evoluído rapidamente nos últimos anos. A ficção científica foi capaz de prever ou estimular vários recursos. Entretanto, um recurso foi pouco explorado na literatura, que é o amplo uso de telas sensíveis ao toque. Como você pensa que estarão os sistemas operacionais em 5, 10 ou 20 anos? O que considera que poderia ser melhorado? Quais recursos atualmente ausentes poderiam ser acrescentados futuramente? Atividade 3 17/03/2021 Versão para impressão - Origem e Estrutura dos Sistemas Operacionais https://conteudo.catolica.edu.br/conteudos/nbt_cursos/praticas_prof_arquitetura_sitemas/tema_04/index.html?print=1&access_token=eyJ0eX… 24/27 ©2018 Copyright ©Católica EAD. Ensino a distância (EAD) com a qualidade da Universidade Católica de Brasília Saiba Mais Para ampliar seu conhecimento a respeito desse assunto, veja abaixo a(s) sugestão(ões) do professor: Como funciona um sistema operacional? O vídeo a seguir apresenta de forma simples e resumida essa ideia. Assista ao vídeo "Computer Basics: Understanding Operating Systems". Ajuste a legenda se necessário. https://www.youtube.com/watch?v=pTdSs8kQqSA 17/03/2021 Versão para impressão - Origem e Estrutura dos Sistemas Operacionais https://conteudo.catolica.edu.br/conteudos/nbt_cursos/praticas_prof_arquitetura_sitemas/tema_04/index.html?print=1&access_token=eyJ0eX… 25/27 ©2018 Copyright ©Católica EAD. Ensino a distância (EAD) com a qualidade da Universidade Católica de Brasília Referências CARTER, N. Teoria e problemas de arquitetura de computadores. Coleção Schaum, Ed. Bookman, 2002. ELZOLT, Phillip G. Optimizing linux performance. 1. ed. Upper Saddle River, New Jersey: Prentice Hall, 2005. 384 p. FERREIRA, Rubem E. Linux: Guia do administrador de sistema. 1. ed. São Paulo: Novatec, 2003. 510 p. MAIA, Francis B. Machado E Luiz P. Arquitetura de sistemas operacionais. 4. ed. Rio de Janeiro: LTC, 2007. 324 p. MICROSOFT TECHNET HOMEPAGE. Technet recursos e ferramentas para profissionais de ti. Disponível em: <http://technet.microsoft.com/pt- br/default.aspx>. Acesso em: 10 nov. 2016. MONTEIRO, Mario A. Introdução à organização de computadores. 5. ed. Rio de Janeiro: LTC, 2007. MONTEIRO, Mário A. Introdução à organização de computadores. 4. ed. 2001. MURDOCCA, Miles J.; HEURING, Vincent P. Introdução à arquitetura de computadores. 6. ed. Rio de Janeiro: Elsevier, 2000. SILBERSHATZ, Abraham. Sistemas operacionais: Conceitos e aplicações. 1. ed. Rio de Janeiro: Campus, 2004. 586 p. SINGHAL, Mukesh. Advanced concepts in operating systems: distributed, database, and multiprocessor operating systems. 1. ed. New York: McGraw Hill, 1994. 522 p. STALLINGS Willian Computer organization and architecture 6nd ed 2005 17/03/2021 Versão para impressão - Origem e Estrutura dos Sistemas Operacionais https://conteudo.catolica.edu.br/conteudos/nbt_cursos/praticas_prof_arquitetura_sitemas/tema_04/index.html?print=1&access_token=eyJ0eX… 26/27 STALLINGS, Willian. Computer organization and architecture. 6nd. ed. 2005. TANENBAUM, adrew S. Organização estruturada de computadores. 5. ed. São Paulo: Pearson Pretice Hall, 2007. TANENBAUM, Andrew S. Organização estruturada de computadores. 5. ed. Pearson Education do Brasil, 2007. TANEMBAUM, Andrew S. Sistemas operacionais modernos. 2. ed. São Paulo: Prentice Hall, 2003. 695 p. THE KERNEL ORG. The linux kernel archives. Disponível em: <http://www.kernel.org/>. Acesso em: 20 nov. 2016. THE LINUX DOCUMENTATION PROJECT. Documents. Disponível em: <http://tldp.org/>. Acesso em: 10 nov. 2016. TOCCI, Ronald J.; WIDMER, Neal S. Sistemas Digitais: princípios e aplicações. 8. ed. São Paulo: Pretice Hall, 2003. WEBER, R. F. Fundamentos de arquitetura de computadores. 1. ed. Porto Alegre, RS: Ed. Sagra Luzzatto, 2000. ______. Arquitetura de computadores pessoais. 2. ed. Porto Alegre, RS: Ed. Sagra Luzzatto, 2001. 17/03/2021 Versão para impressão - Origem e Estrutura dos Sistemas Operacionais https://conteudo.catolica.edu.br/conteudos/nbt_cursos/praticas_prof_arquitetura_sitemas/tema_04/index.html?print=1&access_token=eyJ0eX… 27/27
Compartilhar