·

Informática ·

Rede de Computadores

Send your question to AI and receive an answer instantly

Ask Question

Preview text

FUNDAMENTOS E GESTÃO DE SISTEMAS OPERACIONAIS Marcelo Okano Agnaldo da Costa Ranieri Santos Tecnologia FUNDAMENTOS E GESTÃO DE SISTEMAS OPERACIONAIS Marcelo Okano Agnaldo da Costa Ranieri Santos Curitiba 2016 Fundamentos e Gestão de Sistemas Operacionais Marcelo Okano Agnaldo da Costa Ranieri Santos Ficha Catalográfica elaborada pela Fael Bibliotecária Cassiana Souza CRB91501 O41f Okano Marcelo Fundamentos e gestão de sistemas operacionais Marcelo Okano Agnaldo da Costa Ranieri Santos Curitiba Fael 2016 176 p il ISBN 9788560531547 1 Sistemas operacionais I Costa Agnaldo da II Santos Ranieri III Título CDD 00542 Direitos desta edição reservados à Fael É proibida a reprodução total ou parcial desta obra sem autorização expressa da Fael FAEL Direção de Produção Fernando Santos de Moraes Sarmento Coordenação Editorial Raquel Andrade Lorenz Revisão FabriCO Projeto Gráfico Sandro Niemicz Capa Vitor Bernardo Backes Lopes Imagem Capa ShutterstockcomRainbowPic Diagramação FabriCO ArteFinal Evelyn Caroline dos Santos Betim Sumário Carta ao Aluno 5 1 Introdução aos Sistemas Operacionais 7 2 Instalação 19 3 Processos 43 4 Memória 59 5 Sistemas de Arquivos 75 6 Entrada e saída IO 89 7 Gerenciamento de Usuários 105 8 Segurança 123 9 Desempenho 139 10 Sistemas Operacionais do Mercado Aplicabilidade e Aplicativos de Gestão 155 Conclusão 169 Referências 171 Carta ao Aluno Prezado aluno Os dispositivos móveis como celular GPS tablets etc estão presentes no nosso dia a dia e o software que controla e gerencia estes dispositivos é conhecido como sistema operacional que conta com diversos tipos fabricantes e aplicações Os sistemas operacionais equipam desde os dispositivos móveis até os maiores servidores e computadores que existem Esta disci plina propiciará um entendimento sobre os conceitos principais seu funcionamento tipos e gerenciamento permitindo que você compare os principais sistemas operacionais do mercado selecionar os aplicativos de gestão de sistemas operacionais e instalar e geren ciar um sistema operacional Fundamentos e Gestão de Sistemas Operacionais 6 Estes conhecimentos possibilitarão a você atuar com servidores e com putadores de vários portes e sistemas 2 Entender os principais conceitos para o funcionamento de um sis tema operacional 2 Comparar os principais sistemas operacionais do mercado 2 Selecionar os aplicativos de gestão de sistemas operacionais 2 Instalar e gerenciar um sistema operacional 1 Introdução aos Sistemas Operacionais Nos dias de hoje para um profissional de TI não adianta conhecer os sistemas operacionais como meros usuários domésti cos é preciso estender estes conhecimentos para saber gerenciálos e utilizálos profissionalmente fazer com que o equipamento tenha o máximo de desempenho A diversidade de equipamentos tecnológicos que utilizam os sistemas operacionais desde celulares até servidores de grande porte exigem que os profissionais de TI saibam como escolhêlos para atingirem uma maior eficiência Fundamentos e Gestão de Sistemas Operacionais 8 Objetivos de aprendizagem 2 Entender os conceitos sobre sistemas operacionais história tipos e componentes 2 Diferenciar os diversos tipos de sistemas operacionais 2 Selecionar o melhor para cada tipo de uso 11 Conceitos de sistema operacional O sistema operacional é o conjunto de programas que controla gerencia e opera um dispositivo computacional Este dispositivo pode ser um compu tador servidor tablet etc Importante O sistema operacional é o conjunto de programas que controla gerencia e opera um dispositivo computacional Outras definições sobre sistema operacional 2 É o único programa que fica o tempo todo em execução no com putador normalmente chamado de kernel com todos os outros sendo programas do sistemas e aplicativos SILBERSCHATZ GALVIN 2008 2 Consiste em uma camada de software que oculta o hardware e for nece ao programador um conjunto de instruções mais adequado Como o sistema operacional está localizado entre os aplicativos e o hardware a única maneira dos aplicativos acessarem o hardware é por meio de chamadas às funções do sistema operacional TANEN BAUM 2009 MOROZ 2011 2 É o programa que gerencia e coordena o acesso aos dispositivos de hardware Caso mais de um processo queira acessar um mesmo dispositivo cabe ao sistema operacional coordenar e permitir o acesso a apenas um processo de cada vez TANENBAUM 2009 MOROZ 2011 9 Introdução aos Sistemas Operacionais 12 História Os sistemas operacionais nasceram com a evolução do hardware e a necessidade de realizar cálculos cada vez mais rápidos e precisos Foi essa necessidade que acelerou o processo de evolução dos sistemas operacionais A funcionalidade dos sistemas operacionais antigos não é nada parecida com a dos sistemas operacionais modernos com telas bonitas e de fácil utilização Até chegarmos à variedade de sistema operacionais que temos hoje em nosso mercado o processo foi longo e acompanhado de muitas descobertas De acordo com TANENBAUM 2009 a história dos sistemas operacio nais pode ser classificada em 4 gerações válvulas e painéis transistores e sistemas batch circuitos integrados CIs e multiprogramação e computadores pessoais 2 Primeira Geração 19451955 válvulas e painéis com plugs Os primeiros computadores inventados não contavam com um conceito de sistemas operacionais ou seja o programa ou software não estava embutido na máquina para gerenciar seu hardware pois todas as informações ainda eram configuradas no hardware da máquina Eram quilômetros de fios e muitos programadores para a realização de pequenos cálculos controlados por plugs que eram adaptados e configurados para gerar informações de acordo com a programação necessária Era uma tarefa muito difícil de criação de rotinas para a realização das tarefas pois nessa época nem a lin guagem Assembly havia sido criada Um outro problema eram as válvulas que queimavam e comprometiam os cálculos Além disso sua troca exigia um esforço diário para que o computador pudesse funcionar de forma precisa O computador ENIAC que em portu guês significa computador integrador numérico eletrônico possuía 17468 válvulas Linguagem Assembly Assembly ou linguagem de mon tagem é uma notação legível e entendido por humanos para gerar códigos de máquina que uma arquitetura de computador específica usa para realização de cálculos Fundamentos e Gestão de Sistemas Operacionais 10 Podemos observar na Figura 1 o computador ENIAC um dos primeiros computadores eletrônicos e sua quantidade de plugs e válvulas necessários para sua operação Sem um sistema operacional capaz de gerenciar o har dware a tarefa era realizada pelos programadores Figura 1 Computador da primeira geração Fonte Shutterstock 2016 Saiba mais Podemos aprender mais sobre o processo e a evolução dos Sistemas Operacionais Para isso acesse o site httpswww youtubecomwatchvZl9w2HbUecUlistPLWJVgHJ6b aF6jWGcAVIURWqCvk671aU onde poderá encontrar mais detalhes sobre essa evolução 2 Segunda Geração 1955 1965 transistores e sistemas batch A descoberta dos transistores mudou radicalmente a forma como as operações computacionais eram realizadas pois deram velocidade ao processamento dos dados As válvulas eram mais lentas e queimavam com facilidade com o advento da tecnologia de transistores O termo sistema operacional aparece por meio de um método de programa ção denominada de Batch que consistia em vários comandos que poderiam ser executados em sequência por meio de cartões perfura 11 Introdução aos Sistemas Operacionais dos eliminando das parte do trabalho do operador de terminal a quantidade de pessoas necessárias para realizar rotinas no hardware O sistema de processamento em lote constituíase no arma zenamento prévio de diversos Jobs trabalhos para ser pro cessado sequencialmente no computador quando um Jobs realizava sua tarefa Ou seja quando terminava de utilizar o hardware da máquina sequen cialmente outro Jobs era exe cutado Por isso o nome de Batch arquivos em Lote Essa tarefa demandava tempo e recurso de hardware e a ação humana sobre o processo de gerenciamento das informações ainda era latente Transistores O termo provém do inglês transfer resistor resistorresistência de transferência São utilizados princi palmente como amplificadores e interruptores de sinais elé tricos além de retificadores elétricos em um circuito Jobs O termo provêm do inglês que significa trabalho Saiba mais O transistor foi uma descoberta dos Laboratórios da Bell Tele phone por John Bardeen e Walter Houser Brattain em 1947 e revolucionou a área da computação Nesse pequeno vídeo pode mos entender como ele funciona httpswwwyoutubecom watchvXsv03w9YJqI 2 Terceira Geração 1965 1980 circuitos integrados CIs e mul tiprogramação A grande conquista desta geração foi a capacidade dos sistemas operacionais ler os cartões que continham as programações para o Figura 2 Transistores usados nos computadores da segunda geração Fonte Shutterstock 2016 Fundamentos e Gestão de Sistemas Operacionais 12 disco e o aumento da capacidade de realização de grandes cálculos científicos e de processamento de dados O conceito de proces sar as informações em forma de lote ainda estava vigente nessa geração Mas surge nesse con texto o termo de multiprogra mação vários programas sendo carregados na memória da máquina e compartilhada com os usuários O que começa a dar forma aos sistemas operacionais tradicionais que podiam controlar quais programações deveriam ser executadas Outro destaque desta geração que contribuía para a evolução dos sistemas operacionais foram a substituição dos transistores pelos CIs circuitos integra dos que forneciam uma vantagem maior de processamento em relação à segunda geração Importante O conceito de multiprogramação é um dos mais importantes nos sistemas operacionais modernos Se existirem vários programas carre gados na memória ao mesmo tempo a CPU pode ser compartilhada entre eles aumentando a eficiência da máquina e produzindo mais resultados em menos tempo Saiba mais Para atender a necessidade de multiprogramação surgiram alguns siste mas operacionais Ken Thompson reescreveu o Multics em assembly e batizou seu projeto de Unics Em 1973 o próprio Ken Thompson em conjunto com Dennis Ritchie reescreve o Unix em linguagem C Em 1976 Steve Jobs o guru da Apple teve uma ideia que revo lucionou o mundo um computador pequeno portátil e barato o Figura 3 Circuito integrado CI usado na terceira geração de computadores Fonte Shutterstock 2016 13 Introdução aos Sistemas Operacionais suficiente para que qualquer pessoa pudesse ter acesso o Apple 2 Em 1980 a fabricante de computadores de grande porte a IBM International Business Machines decide entrar para o mercado dos computadores pessoais mas não possuía nenhum programa para rodar nele A IBM fechou contrato com a Microsoft de Bill Gates para ela fornece o Sistema Operacional Surge o MSdos que inicial mente executava um programa por vez 2 Quarta Geração 19801990 computadores pessoais Nesta geração houve a consolidação do mercado dos computadores pessoais e os Sistemas Operacionais tornaramse mais amigáveis com suas telas interativas dando início a interação do homem e da máquina a ergonomia de software layout de telas etc Essa evolu ção veio acompanhada da capacidade computacional disponível especialmente a capacidade de computação com o desenvolvi mento de chips contendo milhares de transistores em um centíme tro quadrado de silício Paralelo a esse crescimento surgiu a popularização da internet e as redes de com putadores que aumentaram as aplicações dos sistemas operacionais de rede e siste mas operacionais distribu ídos Na área de hardware houve um aumento da capacidade de gerenciar dis positivos de entrada e saída teclado mouses monito res impressoras etc Em um sistema operacional de rede podem ser conectados múltiplos computadores de forma física e remotas que compartilham processos arquivos recursos etc Figura 4 Primeiros computadores pessoais Fonte Shutterstock 2016 Fundamentos e Gestão de Sistemas Operacionais 14 A capacidade de gerenciar dispositivos de entrada de dados memó rias principal memória de massa e processamento e a evolução das interfaces são características desta geração Destacamse nessa gera ção os Sistemas Operacionais como o computador pessoal o MS DOS escrito pela Microsoft para o IBM PC e o UNIX que é predominante em máquinas que usam a CPU da família Motorola Você sabia Em 1984 Steve Jobs rouba da Xerox como ele mesmo admite a ideia de um sistema operacional baseado em objetos clicáveis com um mouse Até esse período o gerenciamento dos sistemas opera cionais era realizado por meio de comandos utilizando o teclado No mesmo ano Richard Stallman começa a desenvolver o projeto GNU que deveria possuir as mesmas características do Unix sem aproveitar sua plataforma e surge a Filosofia de software livre Em 1986 a Microsoft lança o Windows 1 um aplicativo de janelas que rodava em cima do sistema operacional MS dos Cinco anos depois em 1991 Linus Torvalds inicia o desenvolvi mento do Linux recebe apoio de milhares de programadores ao redor do mundo e grandes empresas como IBM Sun Microsystems HewlettPackard HP Red Hat Novell Oracle Google Man driva e Canonical 13 Tipos de sistemas operacionais Com o avanço da tecnologia da informação e consequentemente com a popularização dos dispositivos computacionais os sistemas operacionais se tornaram comuns entre os usuários seja no seu computador pessoal no celular sistemas embarcados ou em grandes servidores temos algum tipo de sistema operacional Podemos tipificar os sistemas operacionais da seguinte forma 2 Sistemas operacionais de servidores servidores são todos e qual quer computador que ofereça um ou mais serviços podendo ser 15 Introdução aos Sistemas Operacionais um gerenciador de banco de dados aplicativos servidor de páginas de internet email autenticação etc Estes serviços precisam de um sistema operacional robusto para funcionarem que tenha características próprias como suportar uma grande quantidade de recursos como discos processadores memórias e usuários interconexão de redes e recursos de segurança Podemos citar o VMS para os Mainframes Solaris Unix Linux e Windows Server 2012 2 Sistemas operacionais de disposi tivos móveis é crescente o uso dos dispositivos móveis e cada vez mais rotineiros e usuais como os celulares tablets GPS etc Os sistemas ope racionais para estes dispositivos têm algumas características como manipu lação de fotos e vídeos redes sociais e telefonia Os principais sistemas são o Android e o IOS GPS é a sigla de Global Positioning System que significa sistema de posicionamento global GPS é um sistema de navegação por satélite com um aparelho móvel que envia informações sobre a posição de algo em qualquer horário e em qualquer condição climática Android é o nome do sistema operacional baseado em Linux que opera em celulares smartphones netbooks e tablets IOS antes chamado de iPhone OS é um sistema operacio nal móvel da Apple Inc desenvolvido originalmente para o iPhone também é usado em iPod Touch iPad e Apple TV Figura 6 Sistema Operacional Android Fonte Shutterstock 2016 Figura 5 Sistema Operacional Linux Fonte Shutterstock 2016 Fundamentos e Gestão de Sistemas Operacionais 16 2 Sistemas operacionais de computadores pessoais são os sistemas operacionais que equipam os computadores pessoais como PC e MAC São utilizados pelos usuários para executar aplicativos como planilhas e editores de texto e navegar na internet Como exemplos temos o Linux Windows 78 e 10 e o MACOS 2 Sistemas operacionais embarcados são executados em computado res que controlam dispositivos que geralmente não são considerados computadores e que não aceitam softwares instalados por usuários Exemplos típicos são fornos de microondas aparelhos de TV carros aparelhos de DVD etc TANENBAUM 2009 p22 2 Sistemas Operacionais de tempo real Esses sistemas são caracteriza dos por terem o tempo como um parâmetro fundamental Por exem plo em sistemas de controle de processos industriais computadores de tempo real devem coletar dados sobre o processo de produção e usálos para controlar as máquinas na fábrica TANENBAUM 2009 p22 2 Sistemas multiusuários são sistemas operacionais que permitem que vários usuários trabalhem simultaneamente A maioria dos atuais são multiusuários como Linux e Windows 2 Sistemas monousuários são sistemas que executam somente as tare fas de um único usuário Os primeiros computadores funcionavam desta forma 2 Sistemas multiprocessados são sistemas que são executados em com putadores com vários processadores de forma simultânea A maioria dos atuais são multiprocessados como Linux e Windows 2 Sistemas monoprocessados são sistemas que são executados em computadores com um único processador Algumas funções dos sistemas operacionais 2 Tratamento de interrupções e exceções 2 Criação e eliminação de processos gerenciar a criação ou elimina ção de processos ou seja alocar na memória os recursos necessários para o funcionamento do processo 17 Introdução aos Sistemas Operacionais 2 Suporte a Redes Permite interconectar o equipamento a uma rede de computadores e seus serviços 2 Contabilização do uso do sistema Registra o usoconsumo de recur sos do sistema operacional como uso de cpu discos memória etc 14 Componentes O sistema operacional é composto pelas seguintes partes 2 Gerência de processos tem a função de organizar e escalonar os processos para serem executados no processador 2 Gerência de memória gerencia a alocação de memória para os pro cessos do sistema operacional 2 Gerência de entrada e saída gerencia os mecanismos de buffers e drivers dos dispositivos 2 Gerência de sistema de arquivos responsável pelo gerenciamento dos arquivos implementando compartilhamento controles de acesso etc 2 Proteção do sistema mecanismos de proteção do sistema operacio nal como memória virtual e dois modos de execução 15 Estudo de Caso Uma microempresa está usando uma solução caseira para os seus cinco computadores uma impressora a internet compartilhada em que o compar tilhamento dos dados é feito simplesmente disponibilizando as pastas para os demais computadores e os sistemas operacionais são de computadores pesso ais O que você proporia para melhorar este cenário O uso de compartilhamento de pastas ou impressoras em um sistema operacional de computador pessoal foi planejado para poucas máquinas um problema é que se o computador que está compartilhando estiver desligado ninguém conseguirá usar o recurso Uma solução para melhorar este cenário é instalar um servidor para cen tralizar os dados e impressora e usar um sistema operacional de servidor para Fundamentos e Gestão de Sistemas Operacionais 18 uma microempresa pode ser um Windows Server ou o Linux As vantagens de ter um servidor é que os dados estarão em um único lugar evitando a redundância e não ficará dependente de um computador pessoal para con trolar o acesso aos dados por meio de usuários e autenticação e implementar um sistema para backup dos dados Você Sabia O maior supercomputador do mundo segundo a lista de novembro de 2015 do site top500 wwwtop500org é o Tianhe2 Milky Way2 em inglês desenvolvido para Chinas National University of Defense Technology com 32000 processadores Intel Xeon e 1Peta Byte de memória O sistema operacional é o Linux Veja mais em httpwwwtop500orgsystem177999 Resumindo Neste capítulo vimos que o sistema operacional tem várias definições que podem variar de autor para autor mas é importante lembrar que o sis tema operacional é o conjunto de programas que controla gerencia e opera um dispositivo computacional por meio de seus componentes como geren ciamento de memória gerenciamento de entrada e saída gerenciamento de processos proteção do sistema e gerenciamento de arquivos Os sistemas ope racionais existem desde a década de 40 e passaramse várias gerações Os sistemas operacionais estão presentes nos diversos dispositivos como celulares servidores desktops etc Podemos citar diversos como versões do Windows 7 8 e 10 Unix Linux Mac OS Android e IOS Android Sistema operacional para celula res e tablets desenvolvido pela Google IOS Sistema operacional para celulares e tablets da Apple Linux Sistema Operacional livre Mainframe Servidor de grande porte Windows Sistema Operacional da Microsoft 2 Instalação Antigamente a instalação de um sistema operacional demandava um conhecimento aprofundado pois exigia diversas configurações hardware mas com o crescimento do mercado de desktop e de hardware hoje os sistemas operacionais possibilitam uma instalação fácil bastando alguns comandos e ações A primeira etapa para trabalhar com os sistemas operacionais é aprender como eles são instalados nos computadores Alguns passos são detalhes importantes para a configuração destes sistemas Neste capítulo abordaremos as instalações de dois sistemas operacionais mais utilizados o Windows 81 e o Linux Debian prestando atenção na área de paginação configuração de usuário administrador como o root no Linux as senhas de usuários e a for matação de partições 20 Fundamentos e Gestão de Sistemas Operacionais Objetivos de aprendizagem 2 Instalar um sistema operacional 21 Instalando o Sistema Operacional Windows 81 Antes da Instalação de um Sistema Operacional algumas ações de segu rança devem ser observadas como a capacidade do disco rígido pois caso a capacidade não seja suficiente a instala ção não procederá Outra dica é se per guntar se realmente há a necessidade da instalação pois a maioria dos sistemas operacionais são reinstalados quando há registro por infecções de vírus e incompatibilidade de hardware Verifi que como será dividido seu disco rígido e caso sejam instalados dois sistemas operacionais observe como será feita essa divisão Outro ponto importante em relação à segurança é reservar um espaço no disco para dados separando a pasta de instalação dos sistemas operacionais dos arquivos de dados do usuário Saiba mais O root é um usuário ou seja uma conta especial utilizada para admi nistrar todo sistema operacional Linux assim como o usuário gerado pelo Sistema Operacional Windows chamado de administrator são denominados de superusuários pois possuem privilégios na adminis tração dos serviços dos SOs Importante A instalação de um sistema operacional da Microsoft pode ser encontrada em diversos sites na internet Os passos executados para a instalação do Windows 81 neste módulo são baseados nas ins Figura 1 Tela inicial do sistema operacional Windows 81 Fonte Shutterstock 2016 21 Instalação truções do site da Microsoft httpwindowsmicrosoftcomptBR windows8cleaninstall 1 O primeiro passo é adquirir a versão original do sistema operacio nal Windows neste caso a versão 81 Você pode obtêlo tanto em empresas especializadas ou em alguns casos pode vir com o com putador Segundo a Microsoft há algumas configurações necessá rias para a instalação do sistema operacional Para executar o Win dows 81 em seu computador você precisa de 2 Processador 1 GHz ou mais rápido 2 RAM 1 GB 32 bits ou 2 GB 64 bits 2 Espaço em disco 16 GB 32 bits ou 20 GB 64 bits 2 Ligue o computador para que ele seja inicializado insira a mídia DVD ou CD no leitor do computador e desligue o computador 3 Ligue o computador novamente caso não seja inicializado pelo DVD então você deverá Se você reiniciar o PC e sua versão atual do Windows for iniciada talvez seja necessário abrir um menu de inicialização ou alterar a ordem de inicialização nas configurações de BIOS ou UEFI do computador para que ele seja inicializado a partir da mídia Para isso será necessário pressionar uma combinação de teclas como F2 F12 Delete Esc etc imediatamente após ligar o computador Para obter instruções de como alterar a ordem de inicialização do computador consulte a documentação fornecida com o equipa mento ou vá para o site do fabricante Microsoft 2015 Saiba mais Basic Input OutPut System BIOS Sistema básico de entrada e saída gravada em programa assembler na memória Complementary Metal Oxide Semiconductor CMOS Seu trabalho é informar ao processador como trabalhar com os dispositivos essenciais para o boot do sistema escolhendo as opções Disco PenDrive DVD etc 22 Fundamentos e Gestão de Sistemas Operacionais de arranque do sistema operacional Unified Extensible Firmware Interface UEFI Versão mais eficiente de configuração de arranque do sistema operacional Versão gráfica que permite a utilização de mouse para configuração 4 Ao aparecer a tela de instalação do Windows 8 selecione o idioma e as outras preferências e clique em Avançar Figura 2 Tela de opção para selecionar o idioma Fonte elaborado pelo autor 2016 5 Na página Digite a chave do produto Product Key para ativar o Windows digite a chave do produto Esta chave deve estar na mesma caixa do DVD do Windows 81 ou em um email de confirmação de compra Ela tem esta aparência PRODUCT KEY XXXXXXXXXXXXXXXXXXXXXXXXX Microsoft 2015 Saiba mais Product Key A chave do produto é um número composto de 25 dígitos números que são utilizados para ativar o sistema operacional Tem como objetivo verificar se este não foi usado em mais computado res do que o permitido no Termo de Licença para Software 23 Instalação Figura 3 Tela para inserção da chave do Windows Fonte elaborado pelo autor 2016 6 Leia os termos de licença do Windows se aceitar marque o item Aceito os termos de licença e clique em avançar Figura 4 Tela dos Termos de licença do Windows 81 Fonte elaborado pelo autor 2016 24 Fundamentos e Gestão de Sistemas Operacionais 7 Na tela Que tipo de instalação você deseja selecione a opção Per sonalizada A opção de atualização pode ser utilizada quando há pro blemas no funcionamento do sistema operacional como arquivos corrompidos Esta opção permite reinstalar o sistema e corrigir falhas Figura 5 Tela que mostra as opções de instalação Fonte elaborado pelo autor 2016 8 Na tela Onde você quer instalar o Windows se for instalar na partição existente selecione a partição e clique em avançar Importante Uma partição é uma divisão do espaço de um disco rígido Cada par tição pode conter um sistema de arquivos forma de gerenciar as informações no disco diferente Consequentemente em cada parti ção pode ser instalado um sistema operacional sendo possível por tanto a convivência de vários na mesma unidade de disco ou você poderá realizar uma divisão dos discos em partes iguais ou diferentes para melhor gerenciar suas informações 25 Instalação Figura 6 Opções de particiona mento do disco Fonte elaborado pelo autor 2016 9 Caso tenha que criar uma nova partição com o tamanho diferente do espaço não alocado clique em novo selecione o tamanho dese jado clique em aplicar e em seguida selecione formatar Figura 7 Tela para formatação de partição nova Fonte elaborado pelo autor 2016 26 Fundamentos e Gestão de Sistemas Operacionais 10 Selecione a nova partição e clique em avançar Figura 8 Tela para selecionar a nova partição Fonte elaborado pelo autor 2016 11 Siga as instruções para personalizar e concluir a configuração do seu Windows Na figura 9 podemos visualizar as opções de configuração Figura 9 Tela de inicialização do Windows após as configurações Fonte elaborado pelo autor 2016 27 Instalação Saiba mais Você quer obter mais detalhes sobre a instalação do Windows 81 A Microsoft possui uma área exclusiva para isso Acesse http windowsmicrosoftcomptbrwindows8cleaninstall 22 Instalando o sistema operacional Linux O Linux diferente do Windows é um software livre ou seja seu núcleo pode ser adquirido e mudado dentro das regras estabelecidas pela comuni dade Para nosso modelo de instalação utilizaremos a Distribuição Debian Você sabia O mascote do sistema operacional Linux é um pinguim e seu nome é Tux Em 1996 muitos integrantes da lista de discussão LinuxKernel esta vam pensando sobre a criação de um logotipo ou de um mascote que representasse o Linux Linus Torvalds acabou entrando nesse debate ao afirmar em uma mensagem que gostava muito de pinguins e surgiu o mas cote TUX Para conhecer mais sobre esta história acesse o site https wwwvivaolinuxcombrartigoPorqueamascotedoLinuxeumpinguim 1 Você pode fazer download do DVD ou CD com a imagem de instalação do Debian no link httpcdimagedebianorgdebian cd820amd64isodvd e depois gravar o DVD com a imagem As configurações necessárias para a instalação são 2 computador Pentium 4 1GHz mínimo recomendado para um sistema desktop 2 64 Bytes de memória 2 HD de 1Gbytes Figura 10 TUX Mascote do LINUX Fonte Shutterstock 2016 28 Fundamentos e Gestão de Sistemas Operacionais Importante Nem todo software livre pode ser adquirido sem restrições Existe uma fundação chamada de GNU Licença Pública Geral que regulamenta os softwares livre para a comunidade Linux Leia mais sobre esse impor tante assunto no site httpwwwgnuorglicenseslicensesptbrhtml 2 Ligue a máquina e no menu selecione a opção Install Figura 11 Tela de Inicialização da instalação do Linux Fonte elaborado pelo autor 2016 3 Selecione o idioma da instalação Português do Brasil e clique em Continue Figura 12 Opção de escolha de idiomas Select a language Choose the language to be used for the installation process The selected language will also be the default language for the installed system Language Indonesian Irish Italian Kurdish Latvian Lithuanian Northern Bokmaal Norwegian Nynorsk Polish Portuguese Portuguese Brazil Spanish Bahasa Indonesia Gaeilge Italiano Kurdi Latviski Lietuviskau Sámegillii Norsk bokmal Polski Português Português do Brasil Español Go Back Fonte elaborado pelo autor 2016 29 Instalação 4 Ao aparecer a mensagem que a tradução do instalador está incom pleta tecle sim Figura 13 Tela seleção de linguagem Select a language A tradução do instalador está incompleta para o idioma selecionado Se você faz qualquer coisa além de uma instalação padrão pura e simples há uma chance real de que alguns diálogos sejam exibidos em português ou se este também não estiver disponível em inglês A menos que você tenha um bom entendimento do idioma alternativo é recomendado que você selecione um idioma diferente ou aborte a instalação Continuar a instalação no idioma selecionado Voltar Sim Não Fonte elaborado pelo autor 2016 5 Selecione a localidade Brasil Figura 14 Tela para selecionar a localidade Selecionar sua localidade Brasil Portugal Outro Voltar A localidade selecionada será usada para configurar seu fuso horário e também para por exemplo selecionar o locale do sistema Normalmente este deveria ser o país onde você vive Esta é uma pequenas lista de localidades baseada no idioma selecionado Escolha outro se sua localidade não está listada País território ou área Fonte elaborado pelo autor 2016 Importante A Associação Brasileira de Normas Técnicas ABNT estabelece padrões de dois modelos de teclados utilizados no Brasil ABNT1 e ABNT2 Ambos utilizam a tecla Ç mas o ABNT2 apresenta uma tecla a mais a Alt Gr 6 Selecione o layout do teclado Português Brasileiro e tecle continuar 30 Fundamentos e Gestão de Sistemas Operacionais Figura 15 Menu para seleção do layout do teclado Configure o teclado Voltar Mapa de teclado a ser usado Inglês Americano Albanês Árabe Asturiano Bangladesh Bielorrusso Bengali Belga Bósnio Português Brasileiro Inglês Britânico Búlgaro Búlgaro layout fonético Burmese Francês Canadense Multilinguagem canadense Catalão Chinês Croata Tcheco Dinamarquês Holandês Dinamrquês Holandês Dvorak Butanês Esperanto Estoniano Fonte elaborado pelo autor 2016 7 Insira o nome da máquina hostname e tecle em continuar O hos tname é o nome dado ao computador em que está sendo instalado o sistema operacional A identificação dessa máquina na rede caso ela pertencer a uma será o nome dado nessa configuração Figura 16 Menu para inserir o hostname Configurar a rede Por favor informe o nome de máquina hostname para este sistema O nome de máquina hostaname é uma palavra única que identifica seu sistema na rede Se você não sabe qual deve ser o nome de sua máquina consulte o seu administrador de redes Se você está configurando sua própria rede doméstica você pode usar qualquer nome aqui Nome de máquina Debian01 Voltar Continuar Fonte elaborado pelo autor 2016 31 Instalação 8 Neste item iremos digitar a senha do root Root é o usuário adminis trador do Linux por isso mantenha a senha guardada em lugar seguro Figura 17 Configurando a senha do root Configurar usuários e senhas Voltar Continuar Você precisa definir uma senha para o root a conta administrativa do sistema Um usuário malicioso ou não qualificado com acesso root pode levar a resultados desastrosos portanto você deve tomar o cuidado de escolher uma senha que não seja fácil de ser adivinhada Essa senha não deve ser uma palavra encontrada em dicionários ou uma palavra que possa ser facilmente associada a você Uma boa senha conterá uma mistura de letras números e pontuação e deverá ser modificada em intervalos regulares O usuário root não deverá ter uma senha em branco Se você deixar este campo vazio a conta do root será desabilitada e a conta do usuário inicial dosistema receberá o poder de tornarse root usando o comando sudo Note que você não poderá ver a senha enquanto a digita Senha do root Fonte elaborado pelo autor 2016 9 Digite a senha do root novamente Figura 18 Verificando a senha do root Configurar usuários e senhas Voltar Continuar Por favor informe novamente a mesma senha de root para verificar se você digitoua corretamente Informe novamente a senha para verificação Fonte elaborado pelo autor 2016 10 Digite o nome completo do usuário pode ser o seu mesmo Nessa fase da instalação estamos criando um usuário para o sistema ope racional A conta desse usuário poderá ser utilizada na inicialização do sistema operacional após a conclusão de sua instalação Figura 19 Configurando um usuário comum Configurar usuários e senhas user01 Voltar Continuar Uma conta de usuário será criada para você usar no lugar da conta de root para tarefas nãoadministrativas Por favor informe o nome real deste usuário Esta informação será usada por exemplo como a origem padrão para mensagens enviadas por este usuário bem como por qualquer programa que exiba ou use o nome real do usuário Seu nome completo é uma escolha razoável Nome completo para o novo usuário Fonte elaborado pelo autor 2016 32 Fundamentos e Gestão de Sistemas Operacionais 11 Escolha o nome de usuário Figura 20 Configurando o nome do usuário Configurar usuários e senhas user01 Voltar Continuar Informe um nome de usuário para a nova conta Seu primeiro nome é uma escolha razoável O nome de usuário deverá ser iniciado com uma letra minúscula que pode ser seguida de qualquer combinação de números e mais letras minúsculas Nome de usuário para sua conta Fonte elaborado pelo autor 2016 12 Digite a senha para o usuário Figura 21 Atribuindo uma senha Configurar usuários e senhas Voltar Continuar Uma boa senha conterá uma mistura de letras números e pontuação e deverá ser modificada em intervalos regulares Escolha uma senha para o novo usuário Fonte elaborado pelo autor 2016 13 Digite a senha novamente Figura 22 Verificando a senha Configurar usuários e senhas Voltar Continuar Por favor informe novamente a mesma senha de usuário para verificar se você digitoua corretamente Informe novamente a senha para verificação Fonte elaborado pelo autor 2016 14 Selecione o Estado brasileiro onde o equipamento será utilizado para acertar o fuso horário 33 Instalação Figura 23 Configurando o relógio Configurar o relógio Se o fuso horário desejado não estiver listado por favor volte ao passo Escolher idioma e selecione o país que usa o fuso horário desejado o país onde você vive ou está localizado Selecione um estado ou província para definir seu fuso horário Ceará Distrito Federal Espiríto Santo Fernando de Noronha Goiás Maranhão Minas Gerais Mato Grosso do Sul Mato Grosso Pará Paraíba Pernambuca Piauí Paraná Rio de Janeiro Rio Grande do Norte Rondônia Roraima Rio Grande do Sul Santa Catarina Sergipe São Paulo Fonte elaborado pelo autor 2016 15 Será necessário dividir o disco rígido Escolha o primeiro método Assis tido usar o disco inteiro para simplificar e clique em Continuar Figura 24 Tela divisão do disco Particionar discos Voltar O instalador pode guiálo através do particionamento de um disco usando diferentes esquemas padrão ou caso você prefira você pode fazêlo manualmente Com o particionamento assistido você ainda tem uma chance de posteriormente revisar e personalizar os resultados Se você optar pelo particionamento assistido para um disco inteiro em seguida será solicitado qual disco deverá ser usado Método de particionamento Assistido usar o disco inteiro Assistido usar o disco inteiro e configurar LVM Assistido usar disco todo e LVM criptografado Manual Fonte elaborado pelo autor 2016 16 Na tela seguinte selecione o disco que será particionado e clique em Continuar O particionamento é uma técnica utilizada para dividir o discos em dois ou mais espaços para a instalação de mais 34 Fundamentos e Gestão de Sistemas Operacionais de um sistema operacional ou para instalar o sistema operacional em uma parte do disco e os arquivos pessoais em outra Figura 25 Escolhendo as partições Particionar discos Voltar Note que todos os dados no disco que você selecionar serão apagados mas não antes que você tenha confirmado que realmente deseja fazer as mudanças Selecione o disco a ser particionado SCSI 000 sda 86 GB ATA VBOX HARDDISK Fonte elaborado pelo autor 2016 17 Escolha a segunda opção que usa a partiçãohome separada Clique em Continuar Figura 26 Escolhendo a opção home Particionar discos Voltar Selecionado para particionamento SCSI 000 sda ATA VBOX HARDDISK 86 GB O disco pode ser particionado usando um dentre diversos esquemas diferentes Se você não tiver certeza escolha o primeiro esquema Esquema de particionamento Todos os arquivos em uma partição para iniciantes Partição home separada Partições home var e vtmp separadas Fonte elaborado pelo autor 2016 18 Na próxima tela verifique se as opções de particionamento escolhidas estão corretas e em caso positivo selecione Finali zar o particionamento e escrever as mudanças no disco e clique em Continuar 35 Instalação Figura 27 Verificando particionamento Particionar discos Voltar Esta é uma visão geral de suas partições e pontos de montagem atualmente configurados Selecione uma partição para modificar suas configurações sistema de arquivos ponto de montagem etc um espaço livre onde criar partições ou um dispositivo no qual inicializar uma tabela de partições Particionamento assistido Configurar RAID via software Configurar o Gerenciador de Volumes Lógicos Configurar volumes criptografados Configurar volumes iSCSI SCSI 000 sda 86 GB ATA VBOX HARDDISK 1 primária 82 GB f ext4 5 lógica 4016 MB f swap swap Desfazer as mudanças nas partições Finalizar o particionamento e escrever as mudanças no disco Fonte elaborado pelo autor 2016 19 Na tela de confirmação do particionador na opção Escrever as mudanças nos discos clique em Sim e após em Continuar Figura 28 Confirmação de particionamento Particionar discos Sim Não Se você continuar as mudanças listadas abaixo serão escritas nos discos Caso contrário você poderá fazer mudanças adicionais manualmente As tabelas de partição dos dispositivos a seguir foram mudadas SCSI1 000 sda As seguintes partições serão formatadas partição 1 de SCSI1 000 sda como ext4 partição 5 de SCSI1 000 sda como swap Escrever as mudanças nos discos Fonte elaborado pelo autor 2016 20 Em seguida aguarde enquanto os discos são particionados e forma tados e o sistema operacional é instalado Figura 29 Particionando as configurações escolhidas Instalando o sistema básico Desempacotando libcrypt20amd64 35 Fonte elaborado pelo autor 2016 36 Fundamentos e Gestão de Sistemas Operacionais 21 Na tela seguinte você pode optar por incluir outros DVDs com pacotes de software na instalação Se tiver baixado DVDs adicio nais responda Sim à pergunta Ler outro CD ou DVD Caso contrário clique em Não e então em Continuar Figura 30 Tela opções de Dvds para adicionar outros softwares Configurar o gerenciador de pacotes Seu CD ou DVD de instalação foi lido sua identificação é Debian GNULinux 820 Jessie Official amd64 DVD Binary1 201509061113 Agora você tem a opção de ler CDs ou DVDs adicionais para serem usados pelo gerenciador de pacotes apt Normalmente eles deveriam ser do mesmo conjunto do CDDVD de instalação Se você não possui CDs ou DVDs adicionais este passo pode ser ignorado Se você deseja ler outro CD ou DVD por favor insirao agora Ler outro CD ou DVD Voltar Sim Não Fonte elaborado pelo autor 2016 22 Clique em Sim para escolher um espelho de rede repositório de software e clique em Continuar Figura 31 Tela de repositórios de softwares Configurar o gerenciador de pacotes Um espelho de rede pode ser usado para suplementar o software que está incluso no CDROM Isto também pode disponibilizar novas versões de softwares Você está instalando a partir de um DVD Mesmo que o DVD contenha uma grande seleção de pacotes alguns podem estar faltando Se você tem uma conexão razoável boa com a Internet o uso de um espelho de rede é sugerido se você planeja instalar um ambiente gráfico de área de trabalho Usar um espelho de rede Voltar Sim Não Fonte elaborado pelo autor 2016 23 Selecione o país Brasil do espelho de rede e clique em Continuar 37 Instalação Figura 32 Tela opção de escolha por país Configurar o gerenciador de pacotes O objetivo é encontrar um espelho do repositório Debian que esteja perto de você na rede esteja ciente de que países próximos ou mesmo seu próprio país podem não ser a melhor escolha País do espelho do repositório Debian Voltar digitar informação manualmente Alemanha Argentina Argélia Austrália Bangladesh BieloRússia Brasil Bulgária Bélgica Canadá Cazaquistão Chile China Cingapure Colômbia Coréia República da Costa Rica Croácia Dinamarca El Salvador Eslováquia Fonte elaborado pelo autor 2016 24 Selecione o repositório desejado É aconselhável usar o primeiro da lista que é o ftpbrdebianorg Clique em Continuar Figura 33 Tela para selecionar o repositório Configurar o gerenciador de pacotes Por favor selecione um espelho do repositório Debian Você deverá usar um espelho em seu país ou região se não souber qual espelho possui a melhor conexão de internet até você Normalmente ftpcódigo de seu paísdebianorg é uma boa escolha Espelho do repositório Debian Voltar ftpbrdebianorg debianc3slufprbr sftifuspbr debianlasicunicampbr debspelotasifsuledubr httpredirdebianorg downloadunespbr linorguspbr debianpopscrnpbr Fonte elaborado pelo autor 2016 38 Fundamentos e Gestão de Sistemas Operacionais 25 Na próxima tela você pode informar o endereço do servidor proxy de sua rede se houver Caso não haja deixe a caixa de texto em branco e simplesmente clique em Continuar Importante Um servidor proxy é um computador que atua como intermediário entre uma rede local e a Internet Neste computador em que foi instalado o servidor proxy todos os outros podem acessar a Internet Figura 34 Tela opção servidor proxy Configurar o gerenciador de pacotes Voltar Continuar Se você precisa usar um proxy HTTP para acessar locais fora de sua rede local insira a informação de proxy aqui Caso contrário deixe em branco A informação sobre o proxy deverá ser fornecida no formato padrão httpusuáriosenhamáquinaporta Informação sobre proxy HTTP deixe em branco para nenhum Fonte elaborado pelo autor 2016 26 Na próxima tela selecione se deseja participar do Concurso de Uti lização de Pacotes Sugerimos marcar a opção Não por se tratar apenas de uma máquina de testes Clique em Continuar Figura 35 Tela opção participação do Concurso de Utilização de Pacotes Configurando popularitycontest Voltar Sim Não O sistema pode fornecer anonimamente aos desenvolvedores da distribuição estatísticas sobre os pacotes mais utilizados em seu sistema Esta informação influencia decisões como quais pacotes deverão ser colocados no primeiro CD da distribuição Caso você opte por participar o script de envio automático será executado uma vez por semana enviando as estatísticas para os desenvolvedores da distribuição As estatísticas coletadas podem ser visualizadas em httppopcorndebianorg Sua escolha pode ser modificada posteriormente através da execução do comando dpkgreconfigure popularitycontest Participar do concurso de utilização de pacotes Fonte elaborado pelo autor 2016 39 Instalação 27 Na tela seguinte selecione o software que será instalado em seu sistema operacional Podemos escolher diversas interfaces gráficas vamos optar pelo GNOME deixe marcada também as opções servidor de impres são e utilitários standard de sistema Clique então em Continuar Figura 36 Tela opção do GNOME Seleção de software No momento somente o básico do sistema será instalado Para refinar seu sistema e deixálo de acordo com suas necessidades você pode optar por instalar uma ou mais das coleções de software prédefinidas a seguir Escolha o software a ser instalado Voltar Continuar ambiente de área de trabalho no Debian GNOME Xfce KDE Cinnamon MATE LXDE servidor web servidor de impressão servidor SSH Utilitários standard de sistema Fonte elaborado pelo autor 2016 28 Após a instalação dos pacotes selecionados configure a instalação do gerenciador de inicialização GRUB Marque a opção Sim na tela seguinte e clique em Continuar Quando instalamos duas opções de inicialização de um sistema operacional alteramos o registro mestre de inicialização chamado de MBR Master Boot Record Ele fica localizado no primeiro setor do disco rígido e é responsável por encontrar partições inicializáveis na tabela de partições e carregar o setor de boot O Linux permite a instalação do GRUB e pode ser utilizado para escolher um dos sistemas operacionais instalados em seu computador Figura 37 Tela de configuração do GRUB Instalar o carregador de inicialização GRUB em um disco rígido Voltar Sim Não Parece que esta nova instalação será o único sistema operacional neste computador Se isso for verdade será seguro instalar o carregador de inicialização GRUB no registro mestre de inicialização de seu primeiro disco rígido Aviso Se o instalador falhou ao detectar outro sistema operacional que esteja presente em seu computador modificar o registro mestre de inicialização fará com que os sistemas operacionais não detectados não possam ser inicializados temporariamente porém o GRUB poderá ser configurado posteriormente para permitir a inicialização dos outros sistemas operacionais Instalar o carregador de inicialização GRUB no registro mestre de inicialização Fonte elaborado pelo autor 2016 40 Fundamentos e Gestão de Sistemas Operacionais GRUB é a sigla para Grand Unifield Bootloader Trata se de um gerenciador de boot opção de inicialização do computador por um ou mais sistemas operacionais desenvolvido inicialmente por Erich Stefan Boleyn 29 E na próxima tela selecione o dispositivo onde o GRUB será insta lado normalmente no dispositivo devsda Clique em Continuar Figura 38 Tela configuração de inicialização do GRUB Instalar o carregador de inicialização GRUB em um disco rígido Voltar Você precisa fazer com que seu novo sistema recéminstalado seja inicializável instalando o carregador de inicialização GRUB em um dispositivo inicializável A maneira usual de fazer isso é instalar o GRUB no registro mestre de inicialização de seu primeiro disco rígido Se preferir você pode instalar o GRUB em outro local de seu disco rígido em outro disco ou até mesmo em um diquete Dispositivo no qual instalar o carregador de inicialização Informar manualmente o dispositivo devsda ataVBOXHARDDISKVBObO166e99ec45c7a Fonte elaborado pelo autor 2016 30 Instalação finalizada com sucesso Clique em Continuar para rei niciar o computador e começar a usar o novo sistema Lembrese de remover a mídia de instalação antes Figura 39 Mensagem de finalização da instalação Continuar Finalizar a instalação Instalação completada Voltar A instalação está completa portanto é hora de inicializar em seu novo sistema Certifiquese de remover a mídia de instalação CDROM disquetes para que seja possível inicializar em seu novo sistema ao invés de reiniciar a instalação Fonte elaborado pelo autor 2016 41 Instalação Resumindo Neste capítulo você aprendeu como instalar dois sistemas operacionais para desktops o Windows 81 e o Linux Importante observar cada passo a passo pois apesar dos dois serem sistemas operacionais para usuários cada um tem suas particularidades e peculiaridades como onde obter as mídias de instalação criar os usuários administradores criar as senhas dos usuários formatar a partição configurar para entrar na rede e outros Lembrese também que cada sistema operacional tem o seu procedi mento de instalação alguns mais fáceis como para os dispositivos moveis e outros mais detalhados para os servidores Experimente instalar outros tipos de sistemas operacionais para verificar as dificuldades e facilidades de cada um 3 Processos No mercado de computação existem diversos sistemas de vários tipos uso e fabricantes O que existe em comum entre eles é que a base do funcionamento é o processo Conforme Tanenbaum 2009 o processo é uma abstração de um programa em execução Para conhecermos os sistemas operacio nais temos que estudar os processos e o seu funcionamento Este capítulo permitirá que o aluno entenda os conceitos sobre sistemas operacionais e os processos o thread a comunicação entre processos e o escalonamento de processo Fundamentos e Gestão de Sistemas Operacionais 44 Objetivos de aprendizagem 2 Compreender como funcionam os processos de um sistema ope racional 31 Processo Os processos são os programas em execução já adaptados gerenciados e controlados pelos sistemas operacionais O sistema operacional irá controlar o processo através do sistema de gerenciamento de processos levandose em conta a arquitetura do computador características e projeto do processador Por exemplo um aplicativo pode ser executado em um determinado sistema operacional O programador não precisa se preocupar se o computador tem um ou quatro processadores quem cuida de executar como monoprocessado ou multiprocessado é o sistema operacional Importante Tanenbaum 2009 considera que o processo é Uma abstração de um programa em execução O conceito mais central em qualquer sistema operacional é o processo Processos são programas em execução constituídos por código executável pilha de execução estado do processo prioridade do processo valor do contador de programa registrador PC valor do apontador de pilha registrador SP valores de demais registradores Silberschatz Galvin e Gagne 2008 consideram que processo é um pro grama em execução Um processo necessita certos recursos como tempo de CPU memória arquivos e dispositivos de entrada e saída para executar sua tarefa Estes recursos são associados ao processo no momento de criação ou em execução Monoprocessado Computadores que possuem apenas um processador controlado por um sistema operacional 45 Processos que realiza todas as operações do computador Multiprocessado Computadores que possuem mais de um processador e estes podem compartilhar o mesmo sistema ope racional ou cada um possuir o seu próprio sistema operacional 311 Criação de processo Os sistemas operacionais precisam de mecanismos para criar e eliminar processos durante a operação Há quatro eventos principais que fazem com que os processos sejam criados TANENBAUM 2009 1 Início do sistema 2 Execução de uma chamada de sistema system call de criação de processo por um processo em execução 3 Uma requisição de usuário para criar um novo processo 4 Início de uma tarefa em lote batch job O sistema operacional Linux cria os processos da seguinte maneira I Ao iniciar o sistema é criado um processo chamado inite recebe a identificação de processo número 1 II Este processo coloca os outros processos em execução usando uma chamada de sistema denominada fork III Os processos filhos são criados pelos processos pais O Sistema operacional Windows cria seus processos da seguinte forma I Cada processo do Windows possui um identificador próprio chamado de handle manusear Podemos comparar esses pro cessos criados de forma hierárquica pois um processo gera outro e a partir desse ponto o processo filho ganha uma liga ção com o identificador do processo pai II O conceito de hierarquia é desmontado quando um processo pai passa seu handle manusear para outro processo assim o Fundamentos e Gestão de Sistemas Operacionais 46 processo filho quebra sua antiga ligação com o processo pai e gera uma nova ligação com seu novo processo pai A diferença que existe entre o Linux e o Windows quando se fala de processos é que no Linux quando um processo pai é morto seus filhos não morrem junto com o processo pai isso é ruim quando se trata de vírus pois o processo não é morto apenas se destruir o processo pai System call é o mecanismo usado pelo programa para requisitar um serviço do sistema operacional ou mais especificamente do núcleo do sistema operacional Batch job é um arquivo em lote utilizado para otimizar tarefas Um arquivo em lote é basicamente um arquivo de script que é executado sequencialmente Init Abreviação de initialization onde o processo inicial car rega todos os outros processos em sistemas Unix e Linux 312 Término dos processos Depois de criado um processo começa a executar e fazer o seu trabalho mais cedo ou mais tarde esse processo chegara ao fim e um novo processo ter minará normalmente em razão de alguma das seguintes condições TANEN BAUM 2009 1 Saída normal voluntária o processo terminou de forma normal 2 Saída por erro voluntária o processo não terminou de forma nor mal saiu devido a um erro fatal 3 Erro fatal involuntário erro causado pelo próprio processo 4 Cancelamento por um outro processo involuntário através de um sinal 313 Hierarquia de processos Os processos quando são criados seguem uma hierarquia Os processos filhos são criados por um processo pai e os processos filhos podem criar outros 47 Processos processos Segundo SILBERSCHATZ GALVIN GAGNE 2008 no sis tema operacional Unix ou Linux o processo principal chamase init e tem o identificador do processo com o número um Ele que cria os demais processos e cada processo receberá um identificador do processo seguindo a sequência numérica hierarquia No Windows não existe hierarquia rígida de processos ou grupos de processos Todos os processos são tratados de forma igualitária pelo sistema operacional Figura 1 Exemplo de hierarquia de processos no Linux INIT Identifcador 1 BASH Identifcador 10 BASH Identifcador 12 Is I Identifcador 14 Cd Identifcador 18 Ping Identifcador 20 Fonte Elaborado pelo autor 2016 Saiba mais Para saber mais na pratica sobre Hierarquia dos processos aprender algumas diferenças interessantes sobre hierarquia de processos no Windows e Unix e como isso afeta até mesmo em uma propagação de vírus acesse o site httpwwwdevmediacombrhierarquiadeprocessosnounixe windows24739 Na figura 1 podemos visualizar a criação dos processos a partir do pri meiro processo no caso a Init identificador 1 que a partir de suas ações cria outros processos identificador 10 12141820 e cada um com sua identi ficação Essa identificação ajuda o processador e o sistema operacional iden tificar casa processo Fundamentos e Gestão de Sistemas Operacionais 48 Exemplo de criação de Processos no Windows Na figura 2 podemos visualizar os diversos processos no sistema Opera cional Windows que estão acessando os recursos do Processador Os processos não são criados como uma hierarquia O acesso aos recursos são administra dos pelo Sistema Operacional conforme a ordem de prioridades 314 Estados de um processo Um processo pode assumir os seguintes estados durante a sua existên cia SILBERSCHATZ GALVIN GAGNE 2008 2 Novo new o processo está em criação 2 Em execução running O processo está sendo executado ou seja está utilizando o pro cessador 2 Em espera waiting o processo está aguar dando aresposta de algum evento ou operação de entradasaída 2 Pronto ready o processo está aguardando para ser executado pela CPU 2 Encerrado terminated o processo encer rou suas execuções Figura 3 Diagrama de estados do processo Novo admitido interrupção saída encerra evento ou operação es Pronto Em execução Em espera Em espera de evento ou operação es planejador de expedição Encerrado Fonte Elaborado pelo autor com base em SILBERSCHATZ GALVIN GAGNE 2008 Figura 2 Exemplo de Gerenciamento de processos no Windows Fonte Elaborado pelo autor 2016 49 Processos 32 Threads Os primeiros sistemas operacionais foram projetados para serem mono processados ou seja eram executados em um único processador dessa forma cada processo tinha um espaço de endereçamento e somente um thread de controle TANENBAUM 2009 Cada processo fornece os recursos necessários para executar um pro grama Um processo tem um espaço virtual um endereço código execu tável identificadores abertos para objetos do sistema um contexto de segu rança um identificador único processo variáveis de ambiente uma classe de prioridade tamanhos conjunto de trabalho mínimo e máximo e pelo menos um segmento de execução Cada processo é iniciado com um único seg mento muitas vezes chamado o segmento principal mas pode criar tópicos adicionais a partir de qualquer um de seus tópicos MICROSOFT 2015 Segundo TANENBAUM 2009 um processo pode conter mais de uma instrução ou tarefa que pode assumir várias ações a qual damos o nome de thread que é uma divisão do processo principal de um programa Toda via nem todos os processos são divididos em múltiplos threads ou múltiplas ações assim como nem todos os processadores são capazes de trabalhar tran quilamente com uma enormidade de threads Importante A grande maioria das linguagens de programação como JAVA NET entre outras utilizam recursos de threads Para entendermos como esse recurso é importante quando usamos um browse nave gador internet ele permite fazer o download de vários arquivos ao mesmo tempo gerenciando as diferentes velocidades de cada servi dor e ainda assim permitindo que o usuário continue interagindo mudando de página enquanto os arquivos estão sendo carregados Segundo Tanenbaum 2009 as principais razões para existirem threads são 1 O modelo de programação se torna mais simples se decompomos uma aplicação em múltiplos threads sequenciais que executam em Fundamentos e Gestão de Sistemas Operacionais 50 quase paralelo Considerando um espaço de tempo muito curto esse paralelismo não é real pelo que a execução de sistemas opera tivos multiprogramações num computador com um único proces sador recebe a designação de pseudoparalelismo 2 Mais fáceis isto é mais rápidos de criar e destruir que os processos pois não tem quaisquer recursos associados a eles Em muitos sistemas criar um thread é cem vezes mais rápido do que criar um processo 3 Os usos de threads não resultam em ganho de desempenho quando todos eles são CPUbound limitados pela CPU isto é muito processamento com pouca ES No entanto quando há grande quantidade de computação e de ES os threads permitem que essas atividades se sobreponham e desse modo aceleram a aplicação Microsoft Windows oferece suporte a multitarefa preemptiva que cria o efeito de execução simultânea de vários segmentos de vários processos Em um computador com múltiplos processadores o sistema pode executar simultaneamente como muitos segmentos como existem processadores no computador MICROSOFT 2015 Saiba mais Multitarefa Preemptiva operação realizada pelo Sistema Operacional onde realiza a interrupção e a execução de um programa e passa o controle do sistema a outro programa que está em espera A multita refa preemptiva é um recurso do Sistema Operacional que impede que um programa monopolize o sistema Outro termo utilizado para essa ação chamase timeslicemultitasking multitarefa por fatia de tempo multitarefa por fração de tempo O Linux implementa a estrutura de processos desde as primeiras versões Os threads podem ser criados pelos processos ou mesmo pelos programas que são executados Um exemplo dos threads funcionando é você utilizar um editor de texto enquanto você digita Um thread cuida disso mas temos um outro thread cuidando de colocar o texto na tela e outro salvando em disco Veja a figura 4 51 Processos Figura 4 Editor de textos com três threads Teclado Disco Núcleo Lorem ipsum dolor sit amet consectetur adipiscing elit Suspendisse imperdiet pellentesque dapibus Nunc at odio ac tortor gravida tincidunt sed eget orci Aenean eu tincidunt tortor Ut pellentesque feugiat nulla vel interdum tellus interdum et Sed sit amet tellus et eros iaculis dapibus Lorem ipsum dolor sit amet consectetur adipiscing elit Fusce tincidunt ex vel convallis ultricies arcu ligula dapibus felis vitae vulputate mauris turpis mollis mi Vivamus sed elit id tellus venenatis aliquet eget in orci Nam a aliquam est Fusce a facilisis nisl et rhoncus risus Nunc dolor leo pellentesque ac erat ac porttitor gravida ex Duis massa libero luctus eu purus et lobortis molestie nibh Vestibulum ullamcorper molestie semper Sed et mollis turpis Nullam eu risus viverra facilisis urna eget suscipit dui In eu lectus sem Sed sit amet magna eget eros faucibus laoreet Quisque ultrices id est eu aliquet Vivamus non lorem magna Nunc eu purus et ex auctor lacinia ut nec elit Maecenas in leo eu ligula faucibus aliquam eget at dolor Nam tortor mi sagittis vel augue non porta aliquam ante Nulla bibendum mi vitae orci rhoncus vehicula Nullam commodo sed nunc suscipit tristique Cras sed viverra tortor Etiam justo nunc sollicitudin eget ante sit amet ullamcorper elementum tortor Proin commodo semper luctus Fusce sapien nisi commodo id lacus eget rutrum vehicula ex Nunc mi metus pretium at velit in tempus lobortis libero Aliquam quis justo ipsum Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae Etiam quis dolor sodales semper lorem sit amet sollicitudin massa Morbi a tincidunt elit Nulla nulla elit viverra eget neque ac gravida aliquet magna Nam sit amet lacus ut tellus pharetra ullamcorper vitae et ligula Pellentesque mauris velit posuere non eleifend sed tincidunt id quam Aliquam erat volutpat Ut sit amet iaculis dolor Sed in nunc at tortor hendrerit lacinia Nulla venenatis gravida elit vitae vestibulum sem Proin eros ligula viverra nec eros quis eleifend blandit eros Maecenas hendrerit semper dolor a sagittis Nam sit amet tincidunt nisl Nunc varius ligula condimentum condimentum enim a condimentum ligula Curabitur pulvinar lacinia nisl vel dapibus ipsum cursus sed Nulla vitae vestibulum quam vel pretium sapien Etiam mi tellus interdum sed erat ut pellentesque commodo metus Suspendisse iaculis scelerisque justo vitae ultricies tellus lobortis nec Proin scelerisque ex id ligula egestas ac sodales felis ornare Aenean nibh quam vehicula sed facilisis non pulvinar a lacus Donec convallis molestie pellentesque Pellentesque convallis ligula nibh vel pretium lorem iaculis eget Etiam eu laoreet augue Sed ante felis molestie vel lacinia sit amet facilisis nec neque Mauris iaculis pharetra justo a elementum est luctus eget Nulla tincidunt tortor mauris Sed blandit ultricies risus Etiam felis sapien pharetra sit amet neque nec laoreet accumsan nisl Pellentesque accumsan ex ac purus fringilla lacinia Nulla eget sollicitudin nibh sed aliquam sapien Integer at nisi rhoncus gravida felis vel lobortis nibh In hac habitasse platea dictumst Ut sapien metus ullamcorper at ipsum ut auctor fringilla ex Curabitur at eros molestie hendrerit nulla quis porta quam Fusce rutrum ipsum vel nunc rhoncus feugiat Donec in lacus metus Donec vel ipsum sit Lorem ipsum dolor sit amet consectetur adipiscing elit Suspendisse imperdiet pellentesque dapibus Nunc at odio ac tortor gravida tincidunt sed eget orci Aenean eu tincidunt tortor Ut pellentesque feugiat nulla vel interdum tellus interdum et Sed sit amet tellus et eros iaculis dapibus Lorem ipsum dolor sit amet consectetur adipiscing elit Fusce tincidunt ex vel convallis ultricies arcu ligula dapibus felis vitae vulputate mauris turpis mollis mi Vivamus sed elit id tellus venenatis aliquet eget in orci Nam a aliquam est Fusce a facilisis nisl et rhoncus risus Nunc dolor leo pellentesque ac erat ac porttitor gravida ex Duis massa libero luctus eu purus et lobortis molestie nibh Vestibulum ullamcorper molestie semper Sed et mollis turpis Nullam eu risus viverra facilisis urna eget suscipit dui In eu lectus sem Sed sit amet magna eget eros faucibus laoreet Quisque ultrices id est eu aliquet Vivamus non lorem magna Nunc eu purus et ex auctor lacinia ut nec elit Maecenas in leo eu ligula faucibus aliquam eget at dolor Nam tortor mi sagittis vel augue non porta aliquam ante Nulla bibendum mi vitae orci rhoncus vehicula Nullam commodo sed nunc suscipit tristique Cras sed viverra tortor Etiam justo nunc sollicitudin eget ante sit amet ullamcorper elementum tortor Proin commodo semper luctus Fusce sapien nisi commodo id lacus eget rutrum vehicula ex Nunc mi metus pretium at velit in tempus lobortis libero Aliquam quis justo ipsum Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae Etiam quis dolor sodales semper lorem sit amet sollicitudin massa Morbi a tincidunt elit Nulla nulla elit viverra eget neque ac gravida aliquet magna Nam sit amet lacus ut tellus pharetra ullamcorper vitae et ligula Pellentesque mauris velit posuere non eleifend sed tincidunt id quam Aliquam erat volutpat Ut sit amet iaculis dolor Sed in nunc at tortor hendrerit lacinia Nulla venenatis gravida elit vitae vestibulum sem Proin eros ligula viverra nec eros quis eleifend blandit eros Maecenas hendrerit semper dolor a sagittis Nam sit amet tincidunt nisl Nunc varius ligula condimentum condimentum enim a condimentum ligula Curabitur pulvinar lacinia nisl vel dapibus ipsum cursus sed Nulla vitae vestibulum quam vel pretium sapien Etiam mi tellus interdum sed erat ut pellentesque commodo metus Suspendisse iaculis scelerisque justo vitae ultricies tellus lobortis nec Proin scelerisque ex id ligula egestas ac sodales felis ornare Aenean nibh quam vehicula sed facilisis non pulvinar a lacus Donec convallis molestie pellentesque Pellentesque convallis ligula nibh vel pretium lorem iaculis eget Etiam eu laoreet augue Sed ante felis molestie vel lacinia sit amet facilisis nec neque Mauris iaculis pharetra justo a elementum est luctus eget Nulla tincidunt tortor mauris Sed blandit ultricies risus Etiam felis sapien pharetra sit amet neque nec laoreet accumsan nisl Pellentesque accumsan ex ac purus fringilla lacinia Nulla eget sollicitudin nibh sed aliquam sapien Integer at nisi rhoncus gravida felis vel lobortis nibh In hac habitasse platea dictumst Ut sapien metus ullamcorper at ipsum ut auctor fringilla ex Curabitur at eros molestie hendrerit nulla quis porta quam Fusce rutrum ipsum vel nunc rhoncus feugiat Donec in lacus metus Donec vel ipsum sit Lorem ipsum dolor sit amet consectetur adipiscing elit Suspendisse imperdiet pellentesque dapibus Nunc at odio ac tortor gravida tincidunt sed eget orci Aenean eu tincidunt tortor Ut pellentesque feugiat nulla vel interdum tellus interdum et Sed sit amet tellus et eros iaculis dapibus Lorem ipsum dolor sit amet consectetur adipiscing elit Fusce tincidunt ex vel convallis ultricies arcu ligula dapibus felis vitae vulputate mauris turpis mollis mi Vivamus sed elit id tellus venenatis aliquet eget in orci Nam a aliquam est Fusce a facilisis nisl et rhoncus risus Nunc dolor leo pellentesque ac erat ac porttitor gravida ex Duis massa libero luctus eu purus et lobortis molestie nibh Vestibulum ullamcorper molestie semper Sed et mollis turpis Nullam eu risus viverra facilisis urna eget suscipit dui In eu lectus sem Sed sit amet magna eget eros faucibus laoreet Quisque ultrices id est eu aliquet Vivamus non lorem magna Nunc eu purus et ex auctor lacinia ut nec elit Maecenas in leo eu ligula faucibus aliquam eget at dolor Nam tortor mi sagittis vel augue non porta aliquam ante Nulla bibendum mi vitae orci rhoncus vehicula Nullam commodo sed nunc suscipit tristique Cras sed viverra tortor Etiam justo nunc sollicitudin eget ante sit amet ullamcorper elementum tortor Proin commodo semper luctus Fusce sapien nisi commodo id lacus eget rutrum vehicula ex Nunc mi metus pretium at velit in tempus lobortis libero Aliquam quis justo ipsum Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae Etiam quis dolor sodales semper lorem sit amet sollicitudin massa Morbi a tincidunt elit Nulla nulla elit viverra eget neque ac gravida aliquet magna Nam sit amet lacus ut tellus pharetra ullamcorper vitae et ligula Pellentesque mauris velit posuere non eleifend sed tincidunt id quam Aliquam erat volutpat Ut sit amet iaculis dolor Sed in nunc at tortor hendrerit lacinia Nulla venenatis gravida elit vitae vestibulum sem Proin eros ligula viverra nec eros quis eleifend blandit eros Maecenas hendrerit semper dolor a sagittis Nam sit amet tincidunt nisl Nunc varius ligula condimentum condimentum enim a condimentum ligula Curabitur pulvinar lacinia nisl vel dapibus ipsum cursus sed Nulla vitae vestibulum quam vel pretium sapien Etiam mi tellus interdum sed erat ut pellentesque commodo metus Suspendisse iaculis scelerisque justo vitae ultricies tellus lobortis nec Proin scelerisque ex id ligula egestas ac sodales felis ornare Aenean nibh quam vehicula sed facilisis non pulvinar a lacus Donec convallis molestie pellentesque Pellentesque convallis ligula nibh vel pretium lorem iaculis eget Etiam eu laoreet augue Sed ante felis molestie vel lacinia sit amet facilisis nec neque Mauris iaculis pharetra justo a elementum est luctus eget Nulla tincidunt tortor mauris Sed blandit ultricies risus Etiam felis sapien pharetra sit amet neque nec laoreet accumsan nisl Pellentesque accumsan ex ac purus fringilla lacinia Nulla eget sollicitudin nibh sed aliquam sapien Integer at nisi rhoncus gravida felis vel lobortis nibh In hac habitasse platea dictumst Ut sapien metus ullamcorper at ipsum ut auctor fringilla ex Curabitur at eros molestie hendrerit nulla quis porta quam Fusce rutrum ipsum vel nunc rhoncus feugiat Donec in lacus metus Donec vel ipsum sit Fonte Tanembaum 2009 33 Comunicação entre processos Segundo Tanenbaum 2009 os sistemas operacionais consideram os processos como independentes com as suas áreas de memórias e threads de controles Mas em certos momentos os processos precisam se comunicarem para trocar dados e instruções Processos em um sistema podem ser Independentes ou Cooperantes Processos Independentes não podem afetar ou ser afetados pela execução de outro processo Processos Cooperantes podem afetar ou ser afetados pela exe cução de outro processo SILBERSCHATZ GALVIN GAGNE 2008 Os Processos interdependentes não sofrem nenhuma ação de outro processo por exemplo o processador precisa liberar o teclado para que o usuário possa digi tar um texto esse processo não pode ser afetado por outro processo senão o teclado ficaria indisponível Já os processos cooperantes podem ser afetado sem um jogo que está utilizando uma porcentagem da memória que poderá sofrer ações de outro processo que a CPU demandar Razões para cooperação entre processos SILBERSCHATZ GALVIN GAGNE 2008 2 Compartilhamento de Informações Fundamentos e Gestão de Sistemas Operacionais 52 2 Aumento na velocidade da computação 2 Modularidade 2 Conveniência Processos cooperantes precisam de Comunicação entre Processos IPC interprocess communication SILBERSCHATZ GALVIN GAGNE 2008 Para Silberschatz e Galvin 2008 a comunicação entre processos é o mecanismo para que os processos se comuniquem e sincronizem suas ações Os processos se comunicam entre si sem recorrer às variáveis compartilhadas Fundamentalmente existem duas abordagens 2 Suportar alguma forma de espaço de endereçamento comparti lhado Sharedmemory memória compartilhada os processos podem trocar informações através de leitura e escrita de uma área de memória compartilhada Figura 5 Processos sendo compartilhado na Memória 1 2 Process A shared process B kernel Fonte SILBERSCHATZ GALVIN 2008 Process processo que está sendo compartilhado na memória Shared compartilhado o processo que está sendo compartilhado na memória Kernel núcleo do Sistema Operacional 53 Processos 2 Utilizar comunicação via núcleo do SO que ficaria então respon sável por transportar os dados de um processo a outro a troca de mensagens A comunicação acontece através da troca de mensagens dos processos cooperativos Figura 6 Troca de Mensagens entre os processos na memória 2 1 M M M process A process B kernel Fonte SILBERSCHATZ GALVIN 2008 O recurso utilizado para a troca de mensagens é chamado de local pro cedure call LPC a Só funciona entre processos no mesmo sistema b Usa portas como mailboxes para estabelecer e manter canais de comunicação c Comunicação funciona da seguinte forma 2 O cliente abre um manipulador para o objeto porta de cone xão do subsistema 2 O cliente envia uma solicitação de conexão 2 O servidor cria duas portas de comunicação privadas e retorna o manipulador de uma delas para o cliente 2 O cliente e o servidor usam o manipulador da porta corres pondente para enviar mensagens ou retornos de chamadas e ouvir respostas Fundamentos e Gestão de Sistemas Operacionais 54 34 Escalonamento de processos O escalonamento de processos acontece quando mais de um processo ou thread vários processos querem utilizar o mesmo processador um algoritmo de escalonamento será utilizado para verificar qual será executado primeiro e qual será a prioridade Conforme Silberschatz Galvin e Gagne 2008 o objetivo da multipro gramação é ter processos em execução o tempo todo para maximizar a utilização da CPU O objetivo do tempo compartilhado á alternar a CPU entre processos de forma tão frequente que os usuários possam interagir com cada programa durante sua execução Para atender a esses objetivos o Escalonador de processo seleciona um processo disponível possivelmente a partir de um conjunto de vários processos disponíveis para a execução do programa na CPU Muitos dos problemas que se aplicam ao escalonamento de processos também são válidos para o escalonamento de threads embora haja diferen ças Quando o núcleo gerencia threads o escalonamento normalmente é feito por thread dando pouca ou nenhuma atenção ao processo ao qual o thread pertence TANENBAUM 2009 341 Filas de escalonamento de processo Quando os processos entram no sistema eles são colocados numa fila de tarefas jobqueue Os processos que são residentes na memória principal e estão prontos e esperando para executar são mantidos em uma lista chamada de fila de processos prontos readyqueue Essa fila é geralmente armazenada como uma lista ligada Um cabeçalho prontofila contém indicações para o primeiro e o último PCB Process Control Block contém informações asso ciadas a cada processo na lista Cada PCB inclui um campo apontador que aponta para o seguinte na fila de PCB pronto O sistema também inclui outras filas Quando um processo é atribuído a CPU ele executa por um tempo e eventualmente sai é interrompido ou aguarda a ocorrência de um evento específico como a conclusão de um pedido de E S SILBERS CHATZ GALVIN e GAGNE 2008 As filas de escalonamento são 2 Fila de tarefas JobQueue conjunto de todos os processos no sistema 2 Fila de Processos prontos Readyqueue conjunto de todos os processos residentes na memória principal prontos e esperando para executar 55 Processos 2 Fila de dispositivos conjunto dos processos esperando por um dis positivo de ES Lista ligada termo utilizado para alocação que con siste em cada arquivo composto por uma lista ligada de blocos do disco Não precisa ser continuo arma zena apenas blocos iniciais e sem acesso randômico Processo são os programas em execução já adaptados gerenciados e controlados pelos sistemas operacionais Thread Para um processo poder ser executado em mais de um processador simultaneamente teríamos que ter mini pro cessos dentro dos processos estes minis processos podem ser chamados de threads TANENBAUM 2009 Escalonamento O escalonamento de proces sos acontece quando mais de um processo ou thread querem utilizar o mesmo processador Figura 7 Representação do Escalonamento de Processos fatia de tempo expirada gera um filho espera uma interrupção fila de prontos fila de ES filho é executado ocorre interrupção ES fila de requisição de ES CPU Fonte SILBERSCHATZ GALVIN E GAGNE 2008 Fundamentos e Gestão de Sistemas Operacionais 56 342 Escalonadores Segundo Tanenbaum 2009 escalonador de Longo Prazo ou esca lonador de Jobs seleciona quais processos devem ser trazidos para a fila de processos prontos É invocado muito frequentemente milissegundos e deve ser rápido Escalonador de Curto Prazo ou escalonador da CPU seleciona qual processo deve ser executado a seguir e aloca CPU para ele É invocada com pouca frequência segundos minutos e pode ser lento Estudo de caso A empresa OKSons roda um sistema de escrita fiscal em um servidor monoprocessado O sistema não recebe mais atualizações de software o ser vidor está apresentando problemas de desempenho e pela antiguidade não existe peças de reposição O seu chefe pede uma solução para este problema e o fornecedor de hardware apresenta duas propostas a primeira com dois processadores e o dobro de memória do servidor antigo e a segunda com oito processadores e o quadruplo de memória do servidor antigo Qual seria a sua escolha Justifique e aponte os problemas para realizar esta migração Você sabia Segundo o Canaltech a Intel lançou o seu primeiro modelo com a tecnologia hyperthreading em 2002 no modelo Xeon MP Foster processador voltado para a linha de servidores Em seguida incorpo rando ao Pentium 4 arquitetura Northwood e em todos os modelos que vieram na sequência Embora o sistema operacional enxergue o dobro de núcleos de processamento presentes na prática não é isso que acontece Na verdade é que cada núcleo físico possui duas unidades lógicas independentes cada uma com um controlador de interrupção programável APIC e conjunto de registradores pró prioVeja mais em httpcanaltechcombrdicaprodutosComo funcionaoHyperThreading CANALTECH 2016 57 Processos Resumindo Neste capítulo tivemos a oportunidade de entender como funcionam os processos nos sistemas operacionais a sua evolução para os threads em computadores com mais de um processador a comunicação entre os pro cessos e o escalonamento de processos A importância deste conhecimento é que possibilitará aos administradores de sistemas operacionais o entendi mento se os aplicativos e programas estão preparados para tirar o máximo de proveito do servidor verificando se os processos estão usando todos os processadores ou se os processos estão afunilando em um único processador 4 Memória Neste capítulo iremos discutir o conceito de memória no âmbito de um sistema operacional Vamos conhecer suas nuances tipos abordagens e formas de organização Assim como no corpo humano os dispositivos computacio nais sejam eles um computador pessoal um grande servidor corpo rativo ou até pequenos dispositivos como celulares e tablets tam bém possuem sua memória Da mesma forma assim como algumas pessoas possuem mais ou menos capacidade de memorização estes dispositivos também tem essa característica fazendo com que cada vez mais o conceito de memória seja discutido e estudado em ambientes computacionais visando atender às crescentes demandas da sociedade atual no quesito tecnologia Por anos o meio tecno lógico vem se desenvolvendo buscando criar abordagens que sejam capazes de armazenar mais informações e em menos tempo Para tanto neste capítulo serão apresentados os diferentes tipos de memória como eles se organizam de forma hierárquica abrangendo os processos de tradução de instruções em memória bem como os modos de gerenciamento de memória implementados pelos sistemas operacionais Fundamentos e Gestão de Sistemas Operacionais 60 Objetivo de Aprendizagem 2 Conhecer os tipos de memória e as suas relações hierárquicas entre si 2 Identificar os objetivos da memória em um sistema operacional visando a eficiência da tecnologia 2 Interpretar o ato de tradução de programas em processos e sua rela ção com as memórias em um sistema operacional 2 Compreender as diferentes abordagens de gerenciamento de me mória 2 Conhecer os algoritmos utilizados pelo sistema operacional para alocar dados na memória 41 Tipos de Memória Em um ambiente computacional as memórias são subdivididas em três tipos principais organizados de forma hierarquizada Cada uma destas divisões é responsável por determinadas operações e são alojadas em diferentes partes do computador Em cada tipo de memória existem grandes diferenças entre cus tos capacidades velocidades e funções ficando a cargo do sistema operacional o gerenciamento das operações entre as diferentes memórias disponíveis Figura 1 Hierarquia de memórias Alto custo e velocidade Baixa capacidade Baixo custo e velocidade Alta capacidade Cache Principal Secundária Fonte Elaborado pelo autor com base em DEITEL DEITEL CHOFFNES 2005 61 Memória Dentro da hierarquia de memória figura 1 quanto maior a velocidade menor é a sua capacidade de armazenamento e maior é o custo do mesmo Por outro lado quanto maior a capacidade menor é o custo e a sua velocidade A primeira e mais rápida das memórias a memória cache devido ao seu alto custo possui pouca capacidade de armazenamento Esta é uma memória do tipo volátil e é extremamente rápida fazendo com que a quantidade de tempo de acesso aos dados nela contidos sejam muito inferiores à duração de operações na memória principal o secundária Sua função é auxiliar a memória princi pal alocando em si parte dos dados necessários para a operação da memória principal TANENBAUM 2009 Como não há viabilidade em executar um programa por completo apenas na memória cache dado o seu alto custo e baixa capacidade os estágios seguintes na hierarquia garantem este funcionamento Na memória principal são armazenados os dados em execução no momento É uma memória volátil com mais capacidade de armazenamento que a memória cache porém com menos velocidade Os dados dos progra mas que são provenientes da memória secundária são armazenados tempora riamente na memória principal para que estes sejam executados A memória principal é dividida em memória lógica e memória física Os programas tem acesso apenas à memória lógica de forma que os dados que os mesmos pre cisam alocar na memória são armazenados única e exclusivamente na memó ria lógica que serve como camada entre o programa e a memória física Na memória física os dados em que os programas tem acesso via memória lógica são devidamente alocados nos circuitos físicos da placa de memória Já na memória secundária os dados são armazenados permanente mente de forma nãovolátil Este tipo de memória é de baixo custo sendo assim sua capacidade é muito superior às outras porém é de baixa veloci dade e é nela que os programas são armazenados TANEMBAUM 2009 A memória secundária em um ambiente computacional se materializa por meio dos discos e demais unidades de armazenamento permanente nãovoláteis como harddisks pendrives cartões de memória entre outros Memória Cache memória de altíssima veloci dade residente na unidade de processamento Fundamentos e Gestão de Sistemas Operacionais 62 Memória Primária memória de alta velo cidade residente na memória RAM Memória Secundária memória de baixa velo cidade residente nos discos Há uma explicação clara sobre esta divisão dos dados em diferentes tipos de memória a memória principal como o próprio nome sugere é a protago nista de toda arquitetura pois nela que os dados em execução são armazena dos Por questões óbvias o ideal é que ela seja extremamente rápida e de alta capacidade Deve ser rápida para auxiliar no dia a dia fazendo com que o computador nunca trave ou atrase processos e ela também deve possuir alta capacidade para que caibam muito mais dados durante a execução Porém nada disso é viável economicamente pois uma memória principal com estas características seria muito cara Importante Memórias do tipo volátil dependem de alimentação para manter o arma zenamento enquanto as memórias do tipo nãovolátil possuem a capa cidade de manter o armazenamento mesmo quando não há alimentação Para solucionar o problema da capacidade existe a memória secundária onde sua construção física permite que com menor custo sejam armazenados mais dados E visando solucionar o problema da velocidade surge a memória cache como uma alternativa muito mais rápida para atender a demanda do processador em extrair dados da memória principal Com a memória cache os dados trafegam em velocidades compatíveis com o processador para que sempre que seja necessário um dado o processa dor verifique antes na memória cache se ele já está ali alocado antes de buscar na memória principal que é mais lenta Por ser muito mais performática ela é mais cara por isso sua capacidade é limitada Desta forma em algumas arquiteturas a memória cache se dividem em duas para garantir mais perfor mance ficando uma parte no processador e outra na placamãe 63 Memória Quadro 1 Esquema geral da hierarquia de memórias Memória Volátil Local Velocidade Capacidade Custo Cache Sim Processador ou Placamãe Muito Alta Muito Baixa Muito Alto Principal Sim Pentes de memória Alta Baixa Alto Secundária Não Discos de armaze namento pendrives flash drives etc Baixa Muito Alta Baixo Fonte Elaborado pelo autor com base em TANEMBAUM 2009 É papel do sistema operacional orquestrar esta troca de dados carregando os programas oriundos da memória secundária na memória principal para assim garantir a sua execução Todo o processo de gestão da transferência de dados entre as hierarquias de memória é realizado pelo gerenciador de memória uma funcio nalidade do sistema operacional que controla os espaços livres e as alocações de dados entre as memórias disponíveis no ambiente SILBERSCHATZ 2008 42 Tradução de Programas Para que os programas armazenados sejam executados é necessário que os mesmos sejam traduzidos e transformados em processos Este processo se inicia quando a Unidade de Gerência de Memória MMU Memory Manage ment Unit uma funcionalidade de hardware que organiza o roteamento dos espaços de memória mapeia os endereços da memória lógica com seus respec tivos endereços de memória física TANENBAUM 2009 Mas para que o programa seja um processo ele passa por alguns passos ilustrados na figura 2 Figura 2 Hierarquia de memórias Programa Compilador Montador Objeto Executável Ligador Carregador Memória Fonte Elaborado pelo autor com base em TANENBAUM 2009 Fundamentos e Gestão de Sistemas Operacionais 64 O processo de tradução de programas para a execução na memória se inicia com o compilador Ele serve para transformar o códigofonte do pro grama um arquivo de texto produzido na linguagem de programação em linguagem de máquina O compilador transforma a codificação feita na lin guagem de programação também em um arquivo texto mas em uma lin guagem em que o carregador consegue interpretar A linguagem de máquina possui muito menos instruções e para que haja a execução do programa estas poucas instruções devem ser combinadas para criar rotinas diferentemente das linguagens de programação que possuem mais instruções fazendo com que o processo de codificação do programa seja mais produtiva Após a compilação em geral o montador converte o programa já com pilado em um arquivo de objeto mas já em linguagem binária Este processo serve para transformar o programa que foi unicamente transformado em um arquivo em linguagem de máquina em um arquivo com as corretas instruções para a execução e a alocação dos dados na memória Sendo assim cada instru ção criada em linguagem de máquina é traduzida de forma binária Com as instruções já montadas no arquivo de objetos o ligador une as rotinas em um arquivo executável Ele cria um arquivo já pronto para execução de acordo com as bibliotecas do sistema operacional Sua função é criar o arquivo dividindo as instruções compiladas e montadas em procedi mentos separados visando reaproveitar esta execução quando há alterações no programa Desta forma não é necessária uma nova compilação montagem e ligação a cada alteração de dados no programa Em termos de execução o último estágio é quando o carregador uma funcionalidade do sistema operacional porta o arquivo executável e inicia sua execução alocando os seus dados na memória principal O carregador lê o arquivo executável e determina os espaços dimensões e endereços de memó ria para a execução do programa Finalizando então o processo de tradução de programas em processos na memória principal SILBERSCHATZ 2008 43 Gerenciamento de Memória O gerenciador de memória conforme vimos na seção anterior deve ser capaz de organizar o tráfego de dados Isto é ele deve fazer com que os dados provenientes da memória secundária sejam alocados em espaços de memória 65 Memória vagos da memória primária Sendo que após isso eles devem ser desalojados quando seus processos terminam garantindo que haverão espaços de memó ria principal vagos para novos processos Esta operação se faz necessária pois dada a sua capacidade na memória principal não comporta todos os dados para a execução dos processos sendo assim se faz necessária a alocação e retirada continua de dados Em sistemas operacionais monotarefa onde apenas um processo é executado por vez esta operação é mais simples pois basta compartilhar a memória entre o sistema operacional e o programa tendo apenas um programa sendo executado por vez Porém nos ambientes computacionais de hoje em dia a alocação de memó ria deve ser capaz de operar em multitarefa onde diversas operações podem ser realizadas ao mesmo tempo aumentando assim consideravelmente o grau de complexidade dos processos de alocação de memória Para resolver estes pro blemas diversas abordagens e algoritmos distintos foram criados para atender às situações monotarefa e multitarefa Nas próximas seções veremos as diversas abordagens e algoritmos de alocação de memória TANENBAUM 2009 431 Gerenciamento sem Troca de Processos ou Páginas Os sistemas operacionais monotarefa ou monoprogramados são abordagens computacionais mais antigas pois apenas um programa é execu tado por vez Porém em dispositivos computacionais limitados como placas programáveis dispositivos móveis simples e em computadores para operações específicas é comum ainda a abordagem da monoprogramação DEITEL DEITEL CHOFFNES 2005 Estas operações monotarefa para gerenciar a memória costumam não utilizar troca de processos ou páginas já que o compartilhamento de memó ria é simples pois a memória faz apenas o gerenciamento entre o programa e o sistema operacional Sendo assim o programa pode utilizar toda a memória disponível porém ele está limitado apenas a este limite O sistema opera cional carrega o programa na memória e aloca os dados de acordo com a demanda porém os próximos dados irão sobrepor os espaços de memória já alocados em dados anteriores Como há apenas uma tarefa sendo executada naquele momento não há grandes problemas com isso Fundamentos e Gestão de Sistemas Operacionais 66 A arquitetura mais antiga para a alocação monotarefa sem trocas ou paginações figura 3a utilizada em grandes computadores é onde o sistema operacional estava na parte inferior da memória RAM e o programa na parte superior Outra abordagem utilizada em pequenos dispositivos figura 3b utiliza a alocação do sistema operacional apenas para leitura na parte superior da memória ROM e o programa na parte inferior Uma terceira abordagem utilizada em computadores pessoais antigos figura 3c os dados do sistema operacional relacionados com drivers dos dispositivos ficam na memória ROM e o restante fica na parte inferior RAM TANENBAUM 2009 Figura 3 Exemplo para uso da ferramenta 5W2H Programa de usuário Sistema operacional em RAM Sistema operacional em ROM Programa de usuário Programa de usuário Sistema operacional em RAM Drivers de dispositivo em ROM 0xOFF 0 0 0 a b c Fonte Elaborado pelo autor com base em Tanenbaum 2009 Memória ROM Read only memory São memórias apenas para leitura estes tipos de memórias não permitem que novos dados sejam gravados de forma dinâmica Em geral apenas no momento de fabricação ou em procedimentos específicos os dados podem ser gravados Exemplos são CDROM memórias EPROM de placas programáveis BIOS de placasmãe entre outros Memória RAM Random Access Memory São memórias de acesso aleatório ou seja os processos de gravação e alocação de 67 Memória memória são dinâmicos podendo ocorrer a qualquer momento durante a execução dos processos Elas são representadas pela memória principal do ambiente que visa dar maior velocidade aos dados contidos nos discos no momento de sua execução 432 Gerenciamento com Memória Virtual O conceito de memória virtual é viabilizar a execução de programas que são maiores do que a memória RAM e sejam executados de forma satisfatória Para tanto esta abordagem de gerenciamento de memória utiliza partes da memória secundária utilizando na memória principal apenas os dados ativos e necessários para a execução Você sabia Do ponto de vista comercial sempre que se cita a quantidade de memória de um computador está se referenciando a memória principal contida na Memória RAM Sendo assim sempre que a quantidade de memória de um computador é citada de forma básica está sendo tratado apenas da capacidade dos pentes de memória RAM igno rando as outras memórias da hierarquia Este tipo de abordagem elimina a rigidez do endereçamento físico da memória principal fazendo com que toda a alocação seja feita apenas com base na memória lógica Assim se desvincula a origem da memória fazendo com que exista um endereçamento real dividido entre a memória principal e a secundária e o armazenamento virtual que é apenas utilizado como interface visando suprir as necessidades de execução Assim os programas fazem referência à memoria virtual sem a necessidade de se preocupar com os endereços físicos Quando estamos em um ambiente de memória virtual diversos casos distintos podem acontecer Vamos conhecer alguns deles verificando quando e porquê que eles ocorrem O primeiro deles é a segmentação onde os pro Fundamentos e Gestão de Sistemas Operacionais 68 gramas são organizados em blocos de informações subdividindose por fun cionalidades chamadas de segmentos Cada segmento possui em seus blocos de memória o endereçamento para uso dos programas utilizando apenas a memória virtual para acessálos Em alguns casos onde não há memória suficiente sendo referenciada na memória real o sistema operacional deve eleger processos que serão elimina dos visando abrir espaço para a alocação destes novos dados O swapping faz este trabalho elegendo por prioridade e estado os processos que estão em espera para que estes sejam eliminados garantindo que os próximos dados sejam alocados com efetividade Quando há muito trâmite de dados entre a memória real e a virtual ocorre o thrashing Um estado do sistema operacional oriundo do tempo empenhado em efetuar as transferências entre as instância de memória dimi nuindo assim a efetividade das alocações Este estado força o ambiente a deter mais memória física necessitando assim de um upgrade no hardware para atender a esta necessidade Visando diminuir a quantidade de dados na memória principal uma das soluções é implementar o compartilhamento de memória uma abordagem que processos distintos que utilizam os mesmos dados com partilhem as mesmas referências de memória Desta forma mais proces sos conseguem operar utilizando cada vez menos dados liberando mais espaço na memória diminuindo o custo desta aplicação por exemplo TANENBAUM 2009 433 Gerenciamento com Troca de Processos Com um gerenciamento de memória permitindo a troca de proces sos sempre que um processo é terminado ele deixa seu espaço de memória livre Porém a realocação de memória não utiliza uma fila os novos proces sos são alocados dinamicamente nos espaços de memória vagos de acordo com o espaço disponível para o novo processo que deve ir para a memória TANENBAUM 2009 Desta forma a alocação é mais otimizada pois em uma alocação base ada em filas os espaços de memória liberados podem ser grandes ou peque 69 Memória nos demais para o próximo processo Nesta troca de processos a dinâmica quando vários processos são desalojados eles podem criar um grande espaço para um processo maior ou menor permitindo assim alocações de diversos tamanhos dificultando a possibilidade de não haver espaço para um novo processo Porém isso não quer dizer que nunca irá acontecer para isso existem outras abordagens que veremos a seguir Mas nesta abordagem de troca de processos tendo a figura 4 como exemplo o processo é iniciado tendo apenas um alocado processo A além do sistema operacional figura 4a Na sequência como existem espaços vagos o processo B figura 4b e o processo C são alocados figura 4c Na figura 4d o processo A foi finalizado deixando um espaço maior vago sendo assim ali o processo D é alocado figura 4e Após isso o processo B termina figura 4f deixando mais um espaço vago permitindo que o processo E seja alocado figura 4g Figura 4 Arquitetura de troca de processos Tempo D D D E C C C C C B B B B A A A g Sistema operacional Sistema operacional Sistema operacional Sistema operacional Sistema operacional Sistema operacional Sistema operacional a b f e d c Fonte Tanenbaum 2009 434 Gerenciamento com Paginação Os endereços de memória lógica são divididos em unidades virtuais denominadas como páginas sendo que seus respectivos espaços na memória física são chamados de molduras devidamente mapeadas para gerência do MMU Unidade de Gerência de Memória Esta abordagem de gerencia Fundamentos e Gestão de Sistemas Operacionais 70 mento pode causar falhas na alocação das páginas nas molduras para tanto os algoritmos devem prever problemas de alocação visando alocar corretamente as memórias Vamos conhecer abaixo as várias formas de gerenciamento de memória utilizando a abordagem de Tanenbaum 2009 O algoritmo com a abordagem mais óbvia para substituição de páginas considerado o algoritmo ótimo é o que seria capaz de desalojar os dados da página que não está sendo utilizada fazendo com que os dados da execução atual sejam mantidos removendo apenas dados não utilizados Porém este algoritmo deverá prever também quando estes dados poderão ser utilizados pois para uma alocação de grande volume ele precisará de diversas páginas TANENBAUM 2009 Sendo assim este tipo de algoritmo precisa remover as páginas que serão utilizadas o mais tarde possível e esta é uma tarefa extremamente complexa para um sistema operacional Desta forma o algoritmo ótimo nada mais é do que um método de avaliação de outros algoritmos de alocação de páginas pois ele serve apenas como alvo à atingir Ele é uma forma de medir o quanto é são os outros algoritmos pois hoje é computacionalmente inviável desenvolver uma aborda gem capaz de executar com o devido primor esta tarefa TANENBAUM 2009 Saiba mais Para conhecer mais sobre o histórico dos sistemas operacionais e como funcionavam os ambientes computacionais de forma limitada ao menos uma vez você deve assistir ao filme Piratas do Vale do Silício que conta a história de Steve Jobs Apple e de Bill Gates Microsoft na criação dos seus respectivos sistemas operacionais o Macintosh e o Windows Disponível em httpwwwimdbcom titlett0168122 Uma das abordagens mais simples para a troca de páginas é o uso do algoritmo FIFO firstinfirstout que utiliza o conceito de fila onde a pri meira página a entrar na fila será a primeira a ser definida para a alocação O sistema operacional armazena esta fila em uma lista de páginas de memória As páginas mais antigas ficam no início da lista e as alocadas depois na sequ 71 Memória ência fazendo com que a última página seja a mais nova se comparada com a primeira a mais antiga Se houver uma falha quando uma nova instrução deve ser armazenada a página mais antiga da fila é liberada para a inserção da nova informação TANENBAUM 2009 A partir da remoção desta página mais antiga as demais páginas da fila andam mais um quadro dentro da lista Porém nesta abordagem a página antiga removida pode conter dados necessários para a próxima execução fazendo com que seja necessária mais uma alocação fazendo com que caia em um ciclo de problemas TANENBAUM 2009 Existe então algoritmo segunda chance um algoritmo que serve para suprir a necessidade deixada pelo algoritmo FIFO visando evitar que páginas importantes sejam substituídas na sequência de filas do FIFO O que esta abordagem faz é dar uma nova chance à última página da fila Se o sistema operacional verificar que esta página que segundo o FIFO deveria ser substi tuída é consideravelmente utilizada ela será mantida e a próxima página da fila que será realocada TANENBAUM 2009 O algoritmo verifica a última posição da fila Se for constatado que esta página já foi referenciada em algum momento ela recebe esta nova chance e é limpa para uma próxima verificação Após isso ele passa para a próxima posição Caso o algoritmo verifique todas as posições da fila e todas estiverem referenciadas ele inicia novamente sua busca novamente pelo final da fila que como este foi limpo nas iterações anteriores Ele não estará referenciado fazendo com que ele seja alocado TANENBAUM 2009 Por fim temos o algoritmo relógio uma abordagem de gerenciamento de memória que atua de forma cíclica visando suprir a necessidade que o de segunda chance deixa pois é possível ainda que várias páginas sejam adicio nadas como sendo últimas fazendo com que estas páginas que podem ser importantes ainda sejam removidas Para resolver isso o algoritmo relógio faz com que a fila seja um círculo fazendo com que o início da mesma ou seja a página mais antiga da fila seja definida pelo ponteiro do relógio Desta forma sempre que for dada uma segunda chance para a última página o ponteiro ainda estará definindo quem é a última posição para a próxima itera ção repetindo os procedimentos ciclicamente até que uma página zerada pela verificação de segunda chance seja encontrada TANENBAUM 2009 Fundamentos e Gestão de Sistemas Operacionais 72 Outra solução é o uso do algoritmo LRU leastrecentlyused que faz alocações na página menos utilizada recentemente Este algoritmo visando atingir o algoritmo ótimo lista as páginas que estão a mais tempo sem aloca ção deixando reservados estes espaços para novas alocações Esta abordagem mede o quanto cada página é utilizada partindo assim do princípio de que as páginas mais utilizadas até o momento serão justamente mais utilizadas no futuro fazendo com que o contrário denote futuras faltas de uso tornando estas disponíveis nas futuras alocações TANENBAUM 2009 No LRU as páginas com falhas pouco utilizadas dinamicamente medi das em sua intensidade são classificadas como disponíveis Este algoritmo não é muito utilizado pois a cada alocação as páginas precisam ser atualiza das na última alocação causando lentidão na busca das páginas com menos uso tornando uma implementação correta e eficaz deste algoritmo algo complexo e caro TANENBAUN 2009 Existe então uma abordagem do algoritmo NRU uma versão simpli ficada do LRU onde fica disponível para alocações a página não utilizada recentemente Para definir se elas são utilizadas ou não o sistema operacional classifica as páginas em quatro classes definindo sequencialmente por pesos se elas foram referenciadas ou modificadas Este é um algoritmo mais simples de entendimento e de implementação tornando mais viável o seu uso Assim como os outros este algoritmo busca alcançar o ótimo atingindo um nível satisfatório nesta tarefa TANENBAUN 2009 Outra abordagem é a do algoritmo LFU lastfrequentlyused que faz a alocação pelas páginas utilizadas menos frequentemente Este algoritmo uti liza um contador de usos para as páginas sendo este incrementado a cada uso ou zerado quando os dados são desalojados Com estas informações o algo ritmo elege os menos utilizados para as próximas alocações Este tipo de pagi nação pode não se mostrar tão eficiente pois as páginas mais recentemente alocadas serão justamente as menos valores no contador de uso fazendo com que estas não sejam tão utilizadas TANENBAUN 2009 Por fim temos ainda a opção de utilizar o algoritmo MRU mostrecen tlyused em um sistema operacional para realizar o gerenciamento de memó ria para a substituição de páginas que realiza a alocação nas páginas mais 73 Memória utilizadas recentemente Esta abordagem próxima do LRU mas distinta do algoritmo ótimo busca apenas pelas páginas recentemente utilizadas permi tindo assim que as páginas não utilizadas continuem não sendo utilizadas Sua implementação não é simples tornando seu uso pouco viável visto que em termos ela pode se contrapor ao algoritmo ótimo TANENBAUM 2009 Tabela 1 Comparativo entre os algoritmos ALGORÍTMO FORMA FUNCIONAMENTO Ótimo Não viável Remove dados de páginas não utiliza das mantendo os dados da execução FIFO Fila As primeiras tabela alocada será a primeira a ter dados desalojados e assim sucessivamente Segunda Chance Fila Utiliza o mesmo conceito da Fila mas é dada uma segunda chance para tabelas já utilizadas Relógio Fila Circular Transforma a fila em um círculo onde as tabelas onde foram dadas a segunda chance os ponteiros armazenam onde a próxima rotação irá iniciar LRU Último utilizado recentemente Elege as posições utilizadas recente mente buscando alocar nestes espaços NRU Não utilizado recentemente Evolução do LRU aloca nas tabe las não utilizadas recentemente LFU Menos frequente mente utilizado Realiza as alocações nas posições menos utilizadas frequentemente MRU Mais utilizado recentemente Realiza as alocações nas posições mais utilizadas recentemente Fonte Elaborado pelo autor 2016 Resumindo Do ponto de vista do sistema operacional o gerenciamento de memória é uma área crítica visto que boa parte do desempenho de uma plataforma tecnológica se baseia na memória A eficiência na gestão de memória tornase Fundamentos e Gestão de Sistemas Operacionais 74 um ponto chave para garantir a velocidade e a capacidade de uma determi nada aplicação O presente capítulo abrangeu cada um dos tipos de memória dentro da sua hierarquia Você pode conhecer a função de cada um deles no ambiente computacional e como eles são capazes de transformar programas codificados em uma linguagem de programação em instruções capazes de serem executadas Foi abordado ainda como é o gerenciamento de memória no sistema operacio nal bem como os diferentes tipos de algoritmos que fazem o tráfego de dados O estudo profundo da área de memórias é crucial para o profissional envolvido com o meio tecnológico sendo que é uma área em constante apri moramento pois seu grande objetivo é atingir uma capacidade que cada um de nós possui a memória Exercite a sua se dedicando nos estudos 5 Sistemas de Arquivos Cada plataforma computacional e por sua vez cada sis tema operacional possui ferramentas e abordagens distintas para operar cada uma de suas funcionalidades Isso implica em formas diferentes na leitura e armazenamento de arquivos dadas as dife renças tanto na parte física quanto lógica do ambiente Todas essas diferenças se aplicam também na forma de organização destes arquivos fazendo com que as operações sejam diferentes Com base nesta premissa surgem os sistemas de arquivos padronizações que garantem a organização de como são feitas as operações em seus devidos sistemas operacionais e ambientes computacionais TANENBAUM 2009 Fundamentos e Gestão do Sistema Operacional 76 Neste capítulo será apresentado o funcionamento dos arquivos e diretó rios dentro de um sistema operacional bem como quais as funcionalidades destes artefatos O capítulo abordará também como funciona o gerenciamento dos arquivos e suas operações Por fim você conhecerá diversos exemplos de sistemas de arquivos para os mais distintos sistemas operacionais Objetivos de aprendizagem 2 Identificar o conceito de sistemas de arquivos em um sistema ope racional 2 Compreender o papel dos arquivos e diretórios para o funciona mento de um ambiente computacional 2 Identificar como são gerenciados os arquivos no sistema operacional 2 Conhecer os exemplos de diferentes padrões de sistemas de arquivos 51 Arquivos Os arquivos são informações organizadas de forma sistematizada que podem representar programas e dados gerados por estes programas Eles são referências abstratas para organizar os dados armazenados com o objetivo de deixalos disponíveis para futuros acessos Sendo assim os arquivos servem para que o usuário do sistema operacional consiga acessar suas informações sejam elas dados textos aplicativos vídeos entre outros de forma transpa rente sem existir a preocupação com suas localizações físicas tamanho ou outras características TANEMBAUM 2009 511 Atributos Os sistemas operacionais gerenciam e tratam seus arquivos de formas distintas Porém em geral eles mantêm mesmo que de formas diferentes organizações com nomes de arquivos extensões e formatos que são os atri butos dos arquivos TANENBAUM 2009 O principal atributo do ponto de vista do usuário do sistema opera cional é o nome Cada sistema operacional possui sua própria regra para o 77 Sistemas de Arquivos tamanho de nomes de arquivos uso de caracteres específicos entre outros Quando um determinado processo dentro sistema cria um arquivo seja ele um processo automático ou algo executado pelo usuário é atribuído um nome para este arquivo Fazendo ainda parte do nome do arquivo existe a sua extensão um segundo atributo definido pelos caracteres expostos após o ponto do nome do arquivo Por exemplo em sistemas operacionais Windows no arquivo volumetxt volume é o nome do arquivo propriamente dito e txt é sua extensão que nos sistemas operacionais do mercado são relacionados aos arquivos do tipo texto SILBERSCHATZ 2008 Saiba mais Conheça neste artigo os principais formatos e extensões de arquivos httpbrccmnetfaq3549formatoseextensoesdearquivos Outro atributo comum nos sistemas operacionais é o tamanho do arquivo dependendo do sistema é possível obter informações sobre o tama nho atual do arquivo o tamanho máximo que o arquivo pode ter É comum ainda existir os atributos sobre a criação do arquivo quem criou e quando bem como a alteração contendo quem alterou e quando foi feita a operação Existem ainda vários outros atributos que um arquivo pode ter conforme exposto na tabela 1 dependendo do sistema operacional Quadro 1 Possíveis atributos de arquivo Campo Significado Proteção Quem pode acessar o arquivo e de maneira Senha Senha necessária para acessar o arquivo Criador Id da pessoa que criou o arquivo Proprietário Proprietário atual Sinalizador de somenteleitura 0 para leituragravação 1 para somente leitura Sinalizador de oculto 0 para normal 1 para não exibir em listagens Fundamentos e Gestão do Sistema Operacional 78 Campo Significado Sinalizador de sistema 0 para arquivos normais 1 para arquivo de sistema Sinalizador de arquivo 0 para salvo em backup 1 para ser salvo em backup Sinalizador de ASCIIbinário 0 para arquivo ASCII 1 para arquivo binário Sinalizador de acesso aleatório 0 para acesso seqüencial somente 1 para acesso aleatório Sinalizador de temporário 0 para normal 1 para excluir o arquivo na saída do processo Sinalizador de bloqueio 0 para destravado nãozero para bloqueado Comprimento do registro Número de bytes em um registro Posição da chave Deslocamento da chave dentro de cada registro Comprimento da chave Número de bytes no campochave Tempo de criação Data e hora em que o arquivo foi criado Tempo do último acesso Data e hora em que o arquivo foi acessado pela última vez Tempo da última alteração Data e hora em que o arquivo foi alte rado pela última vez Tamanho atual Número de bytes no arquivo Tamanho máximo Número de bytes até o qual o arquivo pode crescer Fonte Tanenbaum 2009 Em alguns sistemas operacionais determinados tipos de arquivos permi tem a criação de atributos próprios para serem lidos por outros programas Estes atributos são chamados de metadados ou seja são dados sobre dados informações adicionais inseridas sobre o arquivo Estes metadados podem estar disponíveis para o usuário e os programas visando permitir a leitura e altera ção destes dados auxiliares ou podem ser metadados disponíveis no sistema de arquivos sendo utilizados em processos internos do sistema para atribuir dados relacionados com os arquivos e diretórios do sistema de arquivos Os sistemas de arquivos costumam utilizar metadados também para arma zenar dados auxiliares sobre os logs de operações visando criar estruturas de segu 79 Sistemas de Arquivos rança para recuperação Estes logs armazenam os metadados com as informações sobre onde estão os blocos dos dados de arquivos se for necessário restaurar opera ções em que houveram falhas DEITEL DEITEL CHOFFNES 2005 Você Sabia Os arquivos de foto possuem um formato de metadados específico chamado de EXIF Exchangeable Image file format Nele as câmeras armazenam os detalhes da foto comuns entre fotógrafos data e hora local etc Faça o teste fazendo o upload de uma foto do seu celular ou câmera no site httpregexinfoexifcgi Ele irá extrair do EXIF os metadados do arquivo da foto contendo os detalhes da configuração da câmera e se for uma foto capturada por um smartphone com a opção de geolocalização habilitada será exibido no mapa o local de origem da foto 512 Operações Dentro do sistema operacional os arquivos passam por diversas opera ções que exemplificam quais são os processos em que estão envolvidos ou que podem ser executados por meio deles Novamente cada sistema operacional possui suas próprias operações e quando são as operações que coincidem sua forma de operar são ainda mais é distintas Dentre estas operações padrão conheceremos as principais TANENBAUM 2009 Criação Momento inicial do processo onde o arquivo é criado de forma vazia contendo apenas seus atributos sem seus dados Escrita Processo que armazena os dados dentro do arquivo vazio já criado ou sobre arquivos já escritos acrescentando novos dados Exclusão Operação que destrói o arquivo visando liberar o espaço em disco para novos armazenamentos Fundamentos e Gestão do Sistema Operacional 80 Abertura Processo invocado antes da execução do arquivo visa arma zenar temporariamente os atributos e os endereços de memória relacionados com o arquivo para ter o acesso futuro otimizado Fechamento Serve para remover todas as referências de endereços da memória quando os processos são finalizados e não mais necessários Leitura Processo onde o conteúdo de dados são lidos Renomeação Momento onde é possível alterar os nomes e extensões de arquivos Ver Atributos Processo onde é possível selecionar atributos para serem lidos ou pelo usuário ou pelo próprio sistema Escrever Atributos Operação automática ou selecionada pelo próprio usuário onde é possível escrever dados nos atributos do arquivo Importante Sempre que um dispositivo de armazenamento adquirido com uma determinada capacidade é aberto é possível verificar que nem toda a sua capacidade está sendo atingida Por exemplo um pendrive de 8 gigabytes possui na verdade 78 gigabytes para armazenamento Isso ocorre pois o espaço inexistente é dedicado aos Inodes que são estruturas de metadados dedicadas ao armazenamento dos dados arquivos grupos e permissões SILBERSCHATZ 2001 52 Diretórios Os arquivos são organizados dentro do sistema operacional utilizando o conceito de diretórios ou pastas que são artefatos lógicos responsáveis por estruturar os arquivos Em alguns sistemas operacionais baseados em Unix por exemplo os diretórios também são arquivos porém arquivos do tipo diretório Nos diretórios ficam armazenadas as informações relacionadas com a localização física dos arquivos ali armazenados Eles são as estruturas que obtém os dados necessários para o acesso aos arquivos Porém os diretórios 81 Sistemas de Arquivos não são apenas as pastas do disco em um sistema operacional toda a gerên cia de arquivos é baseada em diretórios TANENBAUM 2009 De forma parecida com a dos arquivos nos diretórios também existem atributos tratados como entradas Estas entradas delimitam o tamanho a criação o nome e as datas de criação e edição por exemplo Da mesma forma que com os atributos assim como nos arquivos comuns os sistemas opera cionais também possuem operações específicas para os diretórios Existem as operações de criação exclusão e renomeação que possuem os mesmos obje tivos destas operações em arquivos Mas os diretórios em geral dependendo do sistema operacional possuem ainda outras operações Vamos conhecer agora as operações e as suas respectivas chamadas em ambiente Linux Opendir Operação realizada para abrir um diretório este processo é necessário antes de listar seus arquivos O comando para abrir o diretório disponível para ambientes de programação é opendir diretório passando por parâmetro o diretório e retornando o ponteiro de memória relacionado ao diretório aberto Closedir Operação para fechar o diretório Com o diretório aberto após o seu uso é necessário fechálo para liberar o espaço de memória O comando para fechar o diretório disponível para ambientes de programação é closedir diretório passando por parâmetro o diretório Readdir Operação de leitura de arquivos do diretório Com o diretó rio já aberto esta operação é realizada para ler os arquivos do diretório O comando para ler o diretório disponível para ambientes de programação é closedir diretório passando por parâmetro o diretório e retornando o pon teiro de memória relacionado com o diretório lido Link Processo de vinculação de arquivos em vários diretórios Esta ope ração cria uma espécie de atalho dos arquivos em outros diretórios Comando para criar o link disponível nos terminais é link nome diretório onde é passado por parâmetro o nome do link e o diretório que será referenciado Unlink Processo que desvincula os arquivos colocados como atalho em outros diretórios Comando para desvincular o link disponível nos terminais é link nome onde é passado por parâmetro o nome do link e será desvinculado Fundamentos e Gestão do Sistema Operacional 82 Já no sistema operacional Windows não possuímos comandos específi cos para as operações citadas Enquanto no Linux basta utilizar o prompt de comando para executálos no Windows mesmo que de forma transparente são executadas as mesmas funções seja utilizando a interface gráfica ou em operações de baixo nível quando desenvolvidas em programas que realizam estas operações 53 Gerenciamento de Sistemas de Arquivos Existem três formas principais para a organização de arquivos no sistema operacional TANENBAUM 2009 A primeira delas é a sequencia de bytes figura 1a deste modo nãoestruturada não há uma forma de arquivos é apenas uma coleção de bytes A segunda alternativa é organizar como uma sequência de registros figura 1b neste modo há capacidades físicas para os registros definidas sendo assim o arquivo passa a ser uma coleção de registros com tamanho fixo A terceira forma é organizar de forma contextual como uma árvore de regis tros figura 1c Neste modo cada bloco possui um campochave que indica o índice daquela posição para mostrar quais dados ocuparão aquele espaço Figura 1 Forma de organização de arquivos Formiga Raposa Porco Gato Vaca Cachorro Cabrito Leão Coruja Potro Rato Minhoca Galinha Íbis Carneiro 1 Byte a b c 1 Registro Fonte Tanenbaum 2009 Cada sistema de arquivos possui a sua forma de organização no momento de gerenciar as operações de arquivos dentro do disco Estas formas de orga 83 Sistemas de Arquivos nização além do sistema de arquivos pode variar também de acordo com o tipo de arquivo A forma mais simples de organizar o armazenamento de dados em arquivos é a sequencial onde os dados são armazenados ou lidos um após o outro onde não é possível acessar dados sejam para gravação ou leitura em pontos anteriores Esta abordagem não é tão eficiente nem performática com a evolução das unidades de armazenamento foi necessário evoluir este modelo criando a possibilidade de realizar acesso direto à posição utilizando um registro com o endereço Utilizando o acesso direto para o acesso de dados não é necessário ler ou armazenar os dados em ordem como no modo sequencial pois existindo o número do endereço da posição estes dados podem ser acessados aleatoria mente Porém há ainda uma forma híbrida onde a leitura e armazenamento é feito por acesso direto pelos endereços e a partir de então os dados seguintes são acessados sequencialmente Porém para que os dados sejam acessados sejam eles para leitura ou gravação o arquivo deve ser aberto e neste processo é lido o diretório visto que neles residem as informações sobre os blocos onde os dados do arquivo estão alocados Nos diretórios ficam definidos como o arquivo será acessado seja ele de forma sequencial ou direta Para que os dados sejam gravados no disco é necessário que exista espaço disponível para tal Desta forma os arquivos podem ser organizados em uma sequência de blocos linear ou divido em blocos sejam eles sequenciais ou não Estes arquivos podem ser armazenados em forma de blocos tendo ainda o tamanho destes blocos capacidades fixas Desta forma é necessário definir qual será o tamanho que estes blocos terão Existe ainda uma forma de orga nização baseada em cilindros ou em páginas ficando a cargo do sistema de arquivos dividir o disco desta forma Definido o tamanho dos blocos e páginas o próximo passo da gerência de arquivos é definir quais posições estão livres para alocação A primeira forma de efetuar esta verificação é armazenar uma lista encadeada com os blo cos do disco figura 2a onde a lista representa os blocos disponíveis livres tendo em cada um a mesma divisão proposta para todo o disco Fundamentos e Gestão do Sistema Operacional 84 A segunda alternativa é criar uma mapa de bits figura 2b que cria um bit representando cada um dos blocos Em cada bit dos blocos é armazenado um zero para espaços livres e o número um para espaços em uso Esta alter nativa ocupa menos espaço pois cada bloco representado possui apenas um bit de tamanho Figura 2 Formas de organização de blocos livres 42 136 210 97 41 63 21 48 262 310 516 230 162 612 342 214 160 664 216 262 180 482 86 234 897 422 140 223 223 160 126 142 141 1001101101101100 0110110111110111 1010110110110110 0110110110111011 1110111011101111 1101101010001111 0000111011010111 1011101101101111 1100100011101111 0111011101110111 1101111101110111 a b Um bloco de disco de 1K pode armazenar 256 números de bloco de disco de 32 bits Um mapa de bits Blocos de disco livres 161718 Fonte Tanenbaum 2009 54 Sistemas de Arquivos nos Sistemas Operacionais Cada sistema operacional implementa o seu próprio sistema de arqui vos sendo assim arquivos e diretórios criados em determinado sistema ope racional podem não ser compatíveis para sua execução em um outro sistema operacional que esteja atuando com um outro sistema de arquivos O sistema de arquivos utilizado no sistema operacional é definido no momento onde o disco é formatado pela primeira vez 85 Sistemas de Arquivos Embora existam sistemas de arquivos intercambiáveis entre os sistemas operacionais é importante saber qual o sistema de arquivos que o seu dispo sitivo está formatado para operar se for necessário abrir os seus arquivos em vários sistemas operacionais Vamos conhecer abaixo os principais sistemas operacionais disponíveis no mercado TANENBAUM 2009 Gigabyte 1024 kilobytes Terabyte 1024 megabytes Petabyte 1024 terabytes Exabyte 1024 petabytes 541 FAT File Allocation Table O FAT é um sistema de arquivos do Windows que teve a sua origem no seu sistema operacional precursor o MSDOS A estrutura do FAT cria tabelas que servem para definir o endereçamento das informações de cada arquivo Cada tabela é dividida em blocos onde serão endereçados cada um dos arquivos Um disco formatado em FAT tem sua estrutura divida em blo cos agrupados em clusters Porém com o decorrer do tempo surgiram novas necessidades As uni dades de armazenamento passaram a ter mais capacidade e arquivos cada vez maiores precisaram ser armazenados No FAT era possível armazenar no máximo 2 gigabytes por isso foi lançado o FAT12 com capacidade de arma zenar arquivos maiores e após isso o FAT16 e por fim o FAT32 que ainda embora suporte apenas arquivos de 2 gigabytes pode armazenar ao todo 2 terabytes em seu disco Existiram ainda outras variações do FAT como o VFAT onde era pos sível criar arquivos com mais de 8 caracteres no nome característica esta que por fim também foi incorporada no FAT32 Existe ainda o exFAT Exten ded File Allocation Table um sistema de arquivos ideal para pequenos discos como pendrives e HDs externos onde a velocidade de transporte é maior e a capacidade de armazenamento também foi multiplicada também denomi nado como FAT64 Fundamentos e Gestão do Sistema Operacional 86 542 NTFS New Technology File System O NTFS é um sistema de arquivos também da Microsoft voltado ao sistema operacional Windows que em seu início era voltado ao público cor porativo onde os servidores eram formatados neste formato visando maior segurança confiabilidade e flexibilidade Neste sistema de arquivos foram implementadas novas funcionalidades de tolerância a falhas onde a partir delas é possível recuperar dados caso ocorram quedas na alimentação do disco Neste sistema de arquivos foi implementado também o controle de acesso aos arquivos a gerência de usuários e o controle de permissões Este controle de acessos e permissões não se limita apenas a quais arquivos determinados usuá rios podem ter acesso mas também é referente a cotas de espaço que cada usuá rio terá no disco se este for formatado utilizando o sistema de arquivos NTFS Além disso em comparação com o FAT o NTFS permite o armazena mento de maior quantidade de dados atingindo 16 exabytes Isso devese ao fato de que ao contrário do FAT o NTFS não forma clusters para dividir o disco ele cria uma base para cada um dos setores físicos do disco Porém por utilizar os setores físicos do dispositivo discos removíveis como pendrives se formatados em NTFS podem corromper seus arquivos com maior facilidade 543 EXT Extended File System O EXT é um sistema de arquivos voltado aos sistemas operacionais baseados em Linux que utiliza os padrões de gerenciamento de arquivos da família Unix Este sistema de arquivos iniciou sua popularidade com a versão EXT2 quando evoluiu sua versão anterior EXT para atender aos padrões da família Unix para sistemas de arquivos A partir do EXT2 discos formatados desta forma passavam a ser divididos por blocos que são grupos de setores do disco com o objetivo de formar as dimensões alocáveis para armazenamento A terceira versão o EXT3 adicionou novas funcionalidades ao EXT2 como a possibilidade de registrar cada uma das operações do disco fazendo com que seja possível que em caso de falhas exista a recuperação destes dados Existe ainda uma nova versão o EXT4 que possui as funcionalidades do seu anteces sor o EXT3 como a possibilidade de gerenciar até 1024 petabytes no disco e 1 exabyte por arquivo armazenar hierarquicamente mais diretórios e o undelete uma funcionalidade que delimita alguns arquivos como nãoapagáveis 87 Sistemas de Arquivos 544 UFS Unix File System O UFS que dada a sua principal característica também é chamado de FFS Fast File System Sistema de Arquivos Rápido é utilizado em sistemas operacionais baseados em Unix também dividido em blocos nós e cilindros Além de versões específicas do Linux diversos outros sistemas operacionais da família Unix também implementam o sistema UFS como os sistemas BSD e Solaris Os blocos são segmentados em blocos na parte inicial do disco que servem para o boot um superbloco e cilindros Estes cilindros são agrupados em nós que gravam informações sobre os dados ali gravados Este foi um dos primeiros sistemas de arquivos para Unix e serviu como base para o desen volvimento dos demais influenciando direta e principalmente na criação do sistema de arquivos EXT 545 HFS Hierarchical File System O HFS é o principal sistema de arquivos para sistemas operacionais Apple como o Machintosh e o Mac OSX De forma parecida com os outros sistemas de arquivo Unix o HFS também possui uma ferramenta de arma zenamento de operações porém em um catálogo contendo uma numeração para as operações Existe ainda uma nova versão o HFS que além de operar no Mac OSX também é utilizado sistema iOS para dispositivos móveis da Apple Esta nova versão assim como nas versões mais atuais dos outros sistemas de arquivos implementa maior número de arquivos diretórios caracteres nos nomes de arquivos entre outras funcionalidades 546 Outros Sistemas de Arquivos Além dos sistemas de arquivos aqui citados existem ainda outros siste mas voltados para operações específicas Um deles é o VFS Virtual File Sys tem que serve como um sistema abstrato sobre outros sistemas de arquivos fornecendo aos usuários uma opção única para acessar arquivos de diversos sistemas operacionais Há também o NFS Network File System que com partilha os dados do sistema de arquivos de forma remota via rede Existe o Fundamentos e Gestão do Sistema Operacional 88 ReiserFS que possui boot rápido do disco sendo assim mais performático E temos também o XFS X File Sistem extremamente veloz comumente utilizado para sistemas de banco de dados Importante No meio corporativo com a infinidade de computadores pessoais notebooks servidores e diversos outros dispositivos conectados em uma mesma rede é muito comum que estes utilizem sistemas operacionais dis tintos Isso fatalmente acarreta em sistemas de arquivos distintos Porém é necessário ainda o compartilhamento de arquivos entre estes diversos computadores Para isso existem servidores capazes de fornecer arquivos de forma independente do sistema de arquivos como o Samba uma ferramenta que fornece em sistemas Linux arquivos simulando sistemas de arquivo Windows Permitindo assim o acesso aos arquivos indepen dente do sistema de arquivos em que o disco foi formatado Resumindo Do simples ato de tentar copiar um arquivo em um pendrive do Linux para o Windows até efetuar a transferência de dados entre servidores tudo isso interfere no uso de diferentes sistemas de arquivos Isso pode impedir ou dificultar este tipo de processo Por isso neste capítulo foi abordado o que são os sistemas de arquivos e como os arquivos e diretórios interagem com o disco no âmbito de um sis tema operacional Foi tratado também como funciona a gerência de arquivos no disco no sistema operacional utilizando os sistemas de arquivos e por final foram expostos os principais sistemas de arquivos de mercado e os sistemas operacionais que os implementam Embora existam ferramentas para conversão e sistemas de arquivos inte roperáveis é importante o conhecimento sobre os diferentes sistemas para compreender a importância e o uso de cada um deles Em ambientes com plexos e em grandes aplicações o conhecimento sobre o gerenciamento de arquivos é imprescindível para a compreensão das diferentes variáveis que o ambiente pode impor 6 Entrada e saída IO Caro aluno o gerenciamento de informações de entrada e saída é um dos assuntos mais importantes quando estudamos sistemas operacionais A eficiência desse processo executado pelo SO vai fazer uma grande diferença nas interações executadas com o hardware da máquina Sabemos que o computador é divi dido em três processos simples de execução entrada de dados processamento de dados e saídas de dados Fundamentos e Gestão do Sistema Operacional 90 Nessa aula você irá aprender como se dá a interação do sistema opera cional com os sistemas de entrada e saída de um computador e seus compo nentes como barramentos slots placa de vídeo placa de som a comunicação com processadores e memórias etc Vamos entender a forma que cada dispo sitivo conversa com o processador e as memórias para realizarem suas opera ções Elas são executadas por meio de técnicas computacionais para que não haja ingerência nos processos que serão demandados pelo usuário e sistema operacional com o hardware Objetivos de aprendizagem 2 Compreender sobre gerenciamento de dispositivos de ES 61 Sistema de entrada e saída Uma das principais funções de um SO é controlar as informações de entradas e saídas ES conhecido também como IO inputoutput Para realizar essas operações o SO envia comandos para os dispositivos tendo como fim a captura de interrupções e tratamentos de erros para serem envia das aos processadores Unidade Central de Processamento UCP Os dispo sitivos precisam de autorização do sistema operacional para que as operações realizadas tenham uma sequência de acesso que pode ser por prioridade por processo tamanho dos dados etc Para compreendermos como essa comu nicação é realizada nos dispositivos de entrada e saída vamos estudar os dis positivos em duas categorias genéricas dispositivos de blocos dispositivos de caracteres Interrupções sinal de um dispositivo que tipica mente resulta em uma troca de contextos o proces sador para de fazer o que está fazendo para aten der o dispositivo que pediu a interrupção 91 Entrada e saída IO Figura 1 Exemplos de blocos usados em discos rígidos cada bloco com seu endereço Boot Grupo 0 Grupo n Grupo de blocos Super bloco Descritor de grupo Bitmap Bloco de dados Bitmap Inodes Tabela Inodes Blocos de dados Fonte elaborado pelo autor 2015 a Dispositivos de blocos técnica de entrada e saída que armazena as informações recebidas do processador em blocos de tamanho fixo cada bloco com seu endereço Essa técnica permite que as leituras possam ser realizadas de maneira independente Disposi tivos que utilizam essa técnica são os discos rígidos e dispositivos de armazenamentos em geral pois o volume de informações é grande e interdependente um dos outros por isso são utilizados buffer memorias para gravar as informações entre processadores e controladoras Buffer é uma região de memória física utili zada para armazenar dados temporariamente enquanto são movidos de um lugar para outro b Dispositivos de caracteres técnica de entrada e saída que não uti liza uma estrutura de blocos as informações entre as controladoras dos dispositivos e o processador é realizada por meio de um fluxo de caracteres Dispositivos como teclado mouse utilizam essa téc nica pois priorizam a eficiência da comunicação e não o volume como os dispositivos que utilizam blocos Os dispositivos de carac Fundamentos e Gestão do Sistema Operacional 92 teres não usam buffer memórias pois os fluxos enviados são em menores quantidades Para gerenciar todos os fluxos de informação seja ela por blocos ou caracteres o sistema operacional utiliza algumas técnicas Vamos estudar algumas dessas técnicas entrada e saída programada comunicação via inter rupção e acesso direto à memória DMA c Entrada e saída programada nessa técnica os controladores for necem os comandos para leitura e escrita de dados cabe ao proces sador testar se a informação possui erros se a comunicação com o hardware ou dispositivo foi realizada e isso ocupa o tempo do processador que poderia estar realizando outras operações A essa técnica dáse o nome de verificação de Polling Polling significa ler seu registrador de estado tantas vezes for necessário até que satisfaça a condição Registrador tem a função de armaze nar dados temporariamente d Comunicação via interrupção técnica de comunicação via interrupção é realizada via software Todos os comandos são envia dos para a controladora que acessa o hardware via drive e quando a execução do comando termina uma mensagem via software é enviada para o processador avisando que o processo chegou ao fim A grande vantagem dessa técnica é que o processador fica liberado para executar outras tarefas otimizando assim o sistema operacio nal para gerenciar outras tarefas e Acesso direto à memória esta é uma das técnicas mais efi cientes de comunicação entre as controladoras e o processador 93 Entrada e saída IO pois toda a comunicação é realizada por meio de um canal de dados onde a controladora acessa o processador sem precisar de permissão o nome dado a essa técnica é DMA Dinamic Access Memory acesso direto à memória A eficiência dessa téc nica está na forma de ligação das controladoras que são ligadas fisicamente ao barramento de dados e endereços do computador Segundo Tanebaum 2009 um sistema operacional pode utili zar um DMA somente se o hardware tem instalado um contro lador de DMA caso contrário não conseguirá realizar a comuni cação com eficiência Importante O uso da tecnologia de DMA acesso direto à memória propor cionou uma velocidade maior aos computadores e a gestão dos sis temas operacionais aos dispositivos de Entrada e Saída pois houve menos desgaste do processador Os dispositivos estão ligados ao processador por meio de um barra mento filamentos metálicos que realizam a comunicação entre os dispo sitivos de hardware e esses barramentos à CPU Unidade Central de Processamento por estarem no mesmo canal de comunicação seu acesso a memória se dá por meio da técnica de DMA Depois de estudarmos as técnicas de comunicação relacionadas ao envio de informações acesso ao processador e memória iremos ter uma visão mais abrangente de como tudo isso funciona na percepção de um especialista e não mais de um usuário Na figura 2 podemos perceber uma divisão de todo o controle que um sistema operacional realiza para ter acesso ao hardware esta divisão é reali zada em 4 camadas que são utilizadas para padronizar o acesso e controle dos dispositivos permitindo que o usuário possa adicionar novos dispositi vos sem a necessidade de outros softwares auxiliares Fundamentos e Gestão do Sistema Operacional 94 Figura 2 Gerenciamento de entrada e saída IO ES nível de usuário ES independente do dispositivo Interface padrão para drivers de dispositivo API Hardware driver SCSI driver EIDE driver foppy driver rede driver teclado Sistema operacional Software Fonte TOSCANI S OLIVEIRA R S CARISSIMI2010 Cada camada descrita na figura tem uma função específica Vamos com preendêlas estudandoas na sequência proposta pela figura I ES nível de Usuário quando instalamos um programa em um computador as configurações de acesso de ES ao har dware da máquina por meio da programação já realiza a con figuração por meio do sistema operacional Podemos visualizar na Figura 2 que esse é o último nível da camada onde temos uma abstração transparente de acesso aos recursos ou seja o usuário irá enxergar o hardware sem a sua complexidade com putacional Essa camada é controlada por softwares divididos em baixo nível em que sua principal função é esconder do usuário as especificidades do hardware e apresentar uma boa interface de comunicação que seja simples fácil de usar II ES Independente de dispositivo esse tipo de técnica é uti lizada para qualquer dispositivo Mas quais são estes disposi tivos São os drives na camada abaixo podendo ser um disco rígido placa de som placa de rede mouse teclado controla doras etc Como essa camada consegue manipular qualquer 95 Entrada e saída IO dispositivo A resposta é simples cada dispositivo possui uma interface de acesso realiza a comunicação entre as camadas Nessa camada os níveis mais altos de software só devem tomar conheci mento de um erro caso não consiga tratar com as camadas mais baixas Pode mos destacar os seguintes serviços executados nessa camada os tratamentos de erros bufferização de dados escalonamento de ES acesso as controlado ras entre outros Todas as operações de acesso aos dispositivos como teclados mouses discos etc são realizados por esse software por meio dessa interface Escalonamento tem a tarefa de realizar um agenda mento das tarefas utilizado pela CPU dando prioridade para alguns processos quando achar necessário Importante Buffer é uma memória que armazena dados temporários de escrita e leitura São utilizados quando existe uma diferença entre as taxas de envio e a capacidade de recebimentos do dispositivo A bufferização é o processo de guardar essas informações até que o dispositivo tenha capacidade de recebelas wwwhardwarecombrtermosbuffer III Interface padrão drive de dispositivos a interface de um drive de dispositivo tem por objetivo implementar as rotinas de acesso aos dispositivos instalados na placa mãe do compu tador A ligação entre eles e a placa controladora é realizada por meio da interface controladoradispositivo que é de baixo nível no caso o hardware Nos drives os softwares de ES realizam a programação dos registra dores internos instalados nas controladoras e implementam as formas de comunicação com os dispositivos Na imagem abaixo podemos visualizar um disco rígido em que a interface com a placa controladora é realizada por meio de um cabo Fundamentos e Gestão do Sistema Operacional 96 Figura 3 Interface de comunicação de disco rígido IDE interface Integração Eletrônica de Drive por meio de uma interface Drive jumper Integração Eletrônica de Drive por meio de uma ligação eletrônica Power Ligação do Dispositivo à fonte de energia Fonte Shutterstock 2016 IV Hardware essa é a última camada de acesso e referese ao hardware instalado na máquina A instalação desse dispositivo requer um drive que é fornecido pelos fabricantes Os drives de cada fabricante devem ser configurados de acordo com o sistema operacional instalado e as suas especificidades Pode mos encontrar vários dispositivos que integram essa camada mouse teclados discos rígidos placas monitores Todos esses dispositivos possuem drives que são acessados pelas controla doras e controladas via software Saiba mais Para conhecer mais sobre os processos de comunicação entre o har dware e os processadores acesse a página onde poderá encontrar mais informações sobre assunto o httpfubicalsdufcgedubrhp cursossoLabSOent saidahtml 97 Entrada e saída IO 62 Dispositivos tipos e exemplos Para entendermos como as informações transitam entre os disposi tivos dos computadores temos que saber quais realizaram esse processo Os dispositivos que fazem parte dos sistemas de entrada e saída são device drives driver controladores ou interface dispositivos de entrada e saída discos magnéticos 621 Device Drivers driver Os drives de dispositivos ou Device Drives têm a função de realizar a comunicação com o dispositivo físico por meio de códigos e estes códigos são escritos ou desenvolvidos na linguagem Assembly para cada sistema operacional Analise a Figura 4 em que temos a interface padrão e cada uma é ligada a um drive discos rígidos disquetes placa de rede etc Quando instalamos um novo dispositivo uma placa de rede por exemplo o sistema operacional precisa realizar a comunicação com esse novo dispositivo para isso solicita que o usu ário instale o drive respectivo Um outro exemplo para entendermos um drive de um mouse quando instalado envia informações referente a sua movimenta ção no computador de acordo com o lado pressionado do periférico Um drive de disco rígido enviará informações de endereços de arquivos setores trilhas cilindros cabeça etc Por esse motivo cada dispositivo deverá possuir o seu drive mas há casos que um drive consegue realizar a comunica ção com vários dispositivos Figura 4 Comunicação dos drives com o hardware Interface padrão para drivers de dispositivo API Hardware driver SCSI driver EIDE driver floppy driver rede driver teclado Fonte TOSCANI S OLIVEIRA R S CARISSIMI 2010 Fundamentos e Gestão do Sistema Operacional 98 Segundo Tanebaum 2009 para realizar a comunicação com o hardware os drives dependem das controladoras que por sua vez recebem comandos dos sistemas operacionais denominados de System Calls e traduzem aos comandos específicos desenvolvidos pelos fabricantes para serem executados pelas contro ladoras e as controla com os dispositivos de hardware A principal função dos drives dos dispositivos é a realização da comunicação com o hardware por meio das controladoras Vamos conhecer sobre as controladoras no próximo tópico System Calls é uma chamada executada pelo sistema opera cional para acesso a um hardware essa chamada é autorizada para um usuário especial denominado de modo privilegiado 622 Controladores ou interfaces As controladoras ou interfaces são dispositivos eletrônicos hardware responsáveis pela manipulação direta nos dispositivos de entrada e saída Rea liza a comunicação dos sistemas operacionais com eles Devido ao grande número de acesso a determinados dispositivos de hardware as controladoras possuem memórias e registradores Quando realiza a operação de leitura no dispositivo o controlador armazena uma quantidade de bits em sua memória interna e verifica a ocor rência de erros não havendo erros na leitura de dados o bloco de comandos é transferido para a memória principal do computador RAM A grande maioria dos dispositivos utilizase de blocos de comandos ou vetores de blocos para controle de lei tura e escrita Para facilitar a quantidade de dados alguns dispositivos como discos rígidos utilizamse de uma técnica chamada de DMA para a transfe rência de dados entre a controladora e a memória principal Para avisar que Figura 5 Controladoras para dispositivos de entrada e saída Fonte Shutterstock 2015 99 Entrada e saída IO os processos enviados para as controladas estão executando finalizando ou esperando retorno as controladoras realizam essas tarefas enquanto a UCP unidade central de processamento poderá realizar outras tarefas Na figura 5 podemos observar vários chips conectados a placa mãe alguns deles são controladoras designadas para comandar o hardware da máquina Temos controladoras no mouse teclados placa de rede placa de som etc Importante Algumas controladoras podem ser acopladas no próprio dispositivos de IO das placas mães mais antigas Em placas mais atuais esses con troladores podem controlar diversos dispositivos e somente algumas destas são capazes de realizar o controle de IO de vários dispositivos 623 Dispositivos de entradasaída Os principais dispositivos que encontramos no computador que reali zam a comunicação entre usuário e o computador ou seja o mundo externo são os dispositivos para entrada de dados teclado mouse dispositivos de saída de dados impressoras e dispositivos para entrada e saída de dados modems discos fitas Figura 6 Gerenciamento de entrada e saída realizada pelo sistema operacional Dispositivos de ES Memória Hardware Drivers Dispositivos de Armazenamento Outros Dispositivos Sistema Operacional Interrupções RAID transfere dados são são tipos de é um abstraem realiza gerencia interage trata é composto por vários Fonte TANENBAUM 2009 Fundamentos e Gestão do Sistema Operacional 100 Podemos entender de forma gráfica os diversos dispositivos que são con trolados pelo SO Para acessar um dispositivo de entrada e saída o SO inte rage com os drives fornecidos pelos fabricantes ou já instalados pelo SO As informações de acesso aos dispositivos IO podem ser armazenados em uma memória temporária que transfere para os dispositivos placa mouses tecla dos etc as informações necessárias pedidas pelo processador ou SO Quando há a necessidade de interromper as execuções o SO utilizase de técnicas de interrupções para que os processos mais importantes sejam executados Fazem parte dos dispositivos de entrada e saídaIO os de armazenamento como discos rígidos e outras tecnologias Segundo Stallings 2002 os periféricos como teclados mouses impres soras etc são acoplados ao computador por meio de um componente de hardware chamado interface elas são fixadas aos barramentos da placa mãe que são os canais ou linhas que realizam intercomunicação entre todos os dispositivos de um computador Para controlar todas as informações que trafegam nessas vias temos um controlador que é um tipo de processador projetado para realizar essa função de controle dos dados A comunicação ocorre por meio de blocos de informações ou palavra a palavra realizada via controladoras e a unidade central de processamento Podemos encontrar dois tipos de dispositivos estruturados e os não estruturados Dispositivos estruturados os dispositivos estruturados utilizam a téc nica de armazenar informações em blocos de tamanho fixo que pode variar entre 128 e 1024 bytes Os blocos podem ser lidos ou gravados de forma independente e utiliza o acesso direto e o acesso sequencial O acesso direto é realizado por meio de um endereço um exemplo que utiliza essa técnica são os discos rígidos No acesso sequencial o dispositivo deve percorrer todo a sequência para encontrar a informação um exemplo seria as fitas magnética Dispositivos não estruturados podem enviar e receber informações em sequência e esta sequência não precisa estar estruturada no formato de blocos A sequência enviada não pode ser consultada após seu envio Podemos exemplificar os dispositivos não estruturados como terminais e impressoras 101 Entrada e saída IO 624 Discos magnéticos Discos rígidos são dispositivos magnéticos eletromecânicos que são uti lizados para armazenar uma quantidade maior de informações A memória é um dispositivo muito caro por isso o disco rígido é utilizado para gravar a maior parte das informações nos computadores Por ser um dispositivo mecâ nico e eletrônico os discos são lentos comparados às memórias que são total mente eletrônicas e propiciam um desempenho maior para os computadores Figura 7 Organização física do disco magnético track t sector s cylinder c spindle readwrite head arm assembly arm rotation platter Fonte TOSCANI S OLIVEIRA R S CARISSIMI 2010 Um disco é dividido em vários pratos ou discos sobrepostos e podem ser encontrados mais de 8 discos em um único compartimento Eles possuem em sua superfície uma película magnética em que os dados são gravados Um dispositivo mecânico chamado cabeçote de leitura realiza as gravações e leitura de dados no disco conforme ilustrado na Figura 7 com movimentos retilíneos e toda a estrutura dos discos são cobertas Fundamentos e Gestão do Sistema Operacional 102 Um disco é dividido em trilhas e setores por um sistema operacional Esta divisão serve para organização dos dados que são gravados logicamente nestas unidades outra forma de divisão é a criação de outras unidades realizando partições nos discos No mercado pode mos encontrar opção de dis cos totalmente eletrônicos chamados de SSD solid statedrive ou unidade de estado sólido que utiliza a mesma tecnologia encon trada nos pendrives possuindo menor peso e os tempos de acessos são bastante reduzidos em rela ção aos discos eletromecânicos Outro fator importante desta tec nologia é a diminuição da quantidade de erros de leitura e escrita e durabilidade Saiba mais A tecnologia de discos SSD está evoluindo rapidamente e possui características singulares relacionados à antiga tecnologia discos ele tromecânicos Vamos conhecer mais um pouco sobre essa tecnolo gia Acesse httpwwwinfowestercomssdphp Uma forma de armazenar os dados de forma segura é proposta por uma técnica chamada de Raid Redundant Arrayof Independent Disks ou Conjunto Redundante de Discos Independentes consiste em instalar vários discos em um servidor para satisfazer a necessidade de desempenho e confiabilidade Podemos encontrar Raid implementado em estruturas lógicas Raids 0 1 2 3 4 5 6 10 cada configuração entre 0 e 10 pode apresentar configurações controladas por hardware ou software Figura 8 Novas tecnologias de discos SSD solidstate drive Fonte Shutterstock 2015 103 Entrada e saída IO Resumindo Quando falamos em dispositivos de entrada e saída logo vem a nossa mente o conceito de mouse teclado como dispositivos de entrada e monito res impressora como dispositivos de saída não é errado pensar dessa forma mas agora sabemos como se dá esse processo de forma mais técnica O sistema operacional realiza a comunicação do processador com os dispositivos de hardware por meio de blocos de comandos ou caracteres essa comunicação depende do tipo de hardware acessado A comunicação é realizada com as controladoras dos dispositivos via técnicas de acesso aos processadores podemos nomeálas de DMA acesso direto à memória a mais utilizada comunicação via interrupção e entrada e saída programada Podemos verificar que toda a comunicação é realizada de forma transpa rente aos usuários pois cada dispositivo instalado no computador possui recursos para serem acessados em nível de usuário e em baixo nível por meio das interfaces de dispositivos Para realizar essa comunicação as con troladoras instaladas exercem papel importantíssimo pois controlam todas as informações trocadas com os processadores enviando sinais de status das controladoras para os processadores para avisar como estão sendo processa das as informações requisitadas O principal desafio dos sistemas operacionais é a realização das comu nicações de forma eficiente e sem erros para que os usuários possam ter um sistema estável e sem surpresas quando acessar o hardware da máquina 7 Gerenciamento de Usuários Caro aluno o assunto gerenciamento de usuários por meio de um sistema operacional é um trabalho extremamente importante no contexto dos Sistemas Operacionais pois abordará assuntos rela cionados à segurança e todas as permissões que poderão ser efetua das pelo administrador do SO como acessos dos recursos gerencia dos pelo sistema operacional pastas arquivos espaços em discos autorização de acessos etc Para gerenciar esses recursos os sistemas operacionais permitem gestar usuários por meio de comandos e permissões criando grupos usuários gerenciamento de usuários autenticação e tipos de autenticação Vamos aprender como esses processos funcionam nos sistemas operacionais Windows e Linux Fundamentos e Gestão de Sistemas Operacionais 106 Objetivo de aprendizagem 2 Criar e gerenciar usuários grupos e permissões 71 Usuários A criação de usuários em um sistema operacional requer planejamento pois está relacionado ao organograma da empresa quem é o funcionário qual setor trabalha quais horários ele atua quais softwares e pastas deve acessar Todos esses itens devem ser levados em consideração na hora de criar usuários em um sistema operacional a criação de uma tabela com todos os detalhes das atividades profissionais de cada usuário é de extrema relevância para que haja segurança Por serem multiusuários os SOs podem ser acessados por inúmeros usuários simultaneamente sem que nenhum atrapalhe a atividades de outro Imagine uma empresa que possui 1000 funcionários todos aces sando recursos disponibilizados pelo sistema operacional a gerencia de tudo isso deve ser projetada caso contrário a rede de acesso ficara um caos Multiusuários define a característica de sistemas ope racionais que permite acesso simultâneo de múltiplos usuários aos recursos do Sistema Operacional Recursos do sistema podem estar relacionados a parte lógica do Sistema como pastas softwares arqui vos permissões de leitura e gravação e a parte de har dware memórias processadores discos etc Todo os sistemas operacionais possuem recursos para serem protegidos contra invasões e acessos não autorizados de pessoas Para gerenciálos os SOs possuem usuários especiais que são criados para administrarem pode mos dividir esses usuários em três tipos distintos super usuário usuários do sistema usuários comuns Superusuário Nos sistemas operacionais Windows temos o usuário administrador que possui autorização completa sobre todos os procedimentos de um sistema opera 107 Gerenciamento de Usuários cional seu perfil é criado quando o sistema operacional é instalado mas é possível dar acesso a outros usuários com o mesmo perfil por meio deste No sistema operacional Linux temos o usuário root que possui privilégios parecidos com os administradores dos Sistemas Operacionais do Windows Todos os superusuários são considerados administradores dos SOs pois permitem o gerenciamento de todas as contas dos usuários e acesso aos recursos do Sistema Operacional como criação de usuário senha compartilhamentos permissão de leitura e escrita etc Cada processo programa em execução do sistema tem um dono um pro prietário que determina quem pode e quem não pode utilizar esse recurso quem determina essa gerencia são os superusuários Importante Tornarse dono de um arquivo pode ser necessário quando se deseja acessar ou alterar um arquivo pertencente a outro usuário Embora superusuários sejam capazes de alterar arquivos de outros usuários alguns arquivos só podem ser modificados pelo próprio dono e mais ninguém nem mesmo administradores Usuário do sistema É um usuário especial criado pelo próprio Sistema Operacional para gerenciar tarefas especificas e não necessita estar logado no sistema para con trolar os serviços que lhe são designados Portanto esse tipo de usuário não precisa de senha Usuários comuns São os usuários que terão acesso aos recursos do sistema e são criados pelo superusuários que podem conceder permissões de ler gravar modificar arquivos acessar programas acessar espaço físico no disco impressoras entre outros recursos A este usuário não é concedida a possibilidade de administrar o SO somente se o administrador achar conveniente dar um perfil de um superusuário mas são casos que devem ser bem planejados Comandos para criação de usuários no Linux Para podermos entender como são criados usuários vamos utilizar o Sis tema Operacional Linux Debian 82 já instalado e realizarmos os comandos Fundamentos e Gestão de Sistemas Operacionais 108 para essa operação Todo usuário que é criado no Linux possui uma iden tificação que é única chamada de UID Identificação Usuário que será o número que identificará quem é o usuário no SO Outra identificação impor tante é chamada de GID Identificação Grupo que é a identificação primá ria do usuário UID número utilizado para identificar cada usuário criado GID número utilizado para identifi car um grupo de usuário criado A criação e configuração de usuários é realizada por um arquivo de confi guração que está no diretório etcpasswd e possui sete campos distribuídos da seguinte forma loginsenhaUIDGIDNome Completohomeshell Todas essas configurações são gravadas quando são criados os usuários e servem para identificar quem é esse usuário no sistema permitindo ao admi nistrador mapeálos caso haja algum tipo de invasão Na Figura 1 podemos observar os detalhes de como os arquivos documentam um usuário no Linux todas essas informações são adicionadas no arquivo etcpasswd Figura 1 Arquivo passwd do SO Linux Fonte Elaborado pelo autor 2016 109 Gerenciamento de Usuários Observe na figura 1 que no lugar da senha existe um X isso significa que a senha está criptografada e é guardada em um local chamado de etcsha dow no qual um usuário comum não tem permissão nem mesmo de leitura Para adicionar um usuário no sistema é necessário ter privilégios de administrador no caso ser usuário root Criando um usuário Os dois comandos básicos utilizados para a criação de usuários são adduser e o passwd que permitem adicionar novos usuários e suas senhas Vamos ao comando adduser Agnaldo Criando uma senha para o usuário Agnaldo passwd Agnaldo O sistema operacional Linux é casesensitive isso quer dizer que ele diferencia letras maiúscula de minúsculas no caso o usuário Agnaldo é diferente do usuário agnaldo Alterando senha Para alterar a senha criada o próprio usuário poderá realizar essa ope ração Basta utilizar o comando passwd desde de que saiba a senha antiga Apagando um usuário Para apagar um usuário utilizase o comando userdel e o nome do usuário que deseja remover No nosso exemplo usedel Agnaldo Para aprimorar esse comando temos a opção de remover os diretórios ligados ao usuário criado Esse diretório é feito no diretório home o comando userdel apenas apaga o usuário mas não remove as pastas relacionadas à ele que são criadas juntamente com a inserção de cada novo usuário Por questão de segurança devemos remover o usuário apagando também o seus subdire Fundamentos e Gestão de Sistemas Operacionais 110 tórios para isso adicione o parâmetro r e o comando sudo que permite privilégios de um superusuário como em sudo userdel r Agnaldo Importante Para conhecer mais comandos de criação de usuários e mais opções de parâmetros para ampliar seu conhecimento acesse o site http wwwhardwarecombrtutoriaisusuariosgrupospermissoes e leia esse artigo sobre criação de usuários Comandos para criação de usuários no Windows Para criar um usuário no Windows 8 de forma gráfica basta irmos em painel de controle e acessar o ícone Usuários e clicar Adicionar usuários Nesse nosso exemplo vamos criar usuários por meio de linhas de comando ou prompt de comando Para isso acesse o menu iniciar na opção executar digite CMD e pressione Enter A seguinte tela irá aparecer Figura 2 Arquivo do Windows Fonte Elaborado pelo autor 2016 Criação de Usuários Para criar usuários no Windows basta digitar no prompt de comando conforme a tela da figura 2 Digite o seguinte comando e tecle Enter net user 111 Gerenciamento de Usuários username password add No comando acima substitua username com um nome personalizado epassword com uma senha forte para proteger sua conta Note que você deve executar o comando acima no prompt de elevação como administrador Executar o comando sem direitos de administrador irá mostrar Acesso negado Alterando Senha Para alterar a senha de um usuário escreva o comando net user e pres sione Enter Este comando irá retornar uma lista das contas dos usuários que estão cadastrados Procure pelo nome da pessoa que deseja alterar a senha Escreva no Prompt de comando net user nome do usuário Uma dica é não esquecer nenhum dos espaços em branco pois caso isso aconteça o comando não irá funcionar Apagando um Usuário Abra o Prompt de comando como administrador Digite o seguinte comando e tecle Enter net user username delete Para este comando substitua username com o nome de conta de usu ário que você gostaria de excluir e confirme a exclusão Assim que enviado o comando irá lhe dar a opção de escrever uma nova senha para o usuário 72 Grupos Criando grupos no Linux Quando criamos um usuário com uma senha devemos especificar quais recursos esse usuário terá em nosso sistema operacional para isso devemos dar permissões de acesso aos recursos dos sistemas caso não façamos essa configuração o usuário terá apenas o acesso a uma pasta do diretório home do sistema Antes de tratarmos do assunto permissão temos que entender o que são grupos em um sistema operacional O arquivo etcgroup controla o acesso dos usuários a seus grupos cadas trados e permite que vários usuários tenham permissão de acesso ao mesmo arquivo do sistema visto que cada usuário pode pertencer a um ou mais gru pos e acessar arquivos pertencentes ao seu grupo ou a outros grupos Fundamentos e Gestão de Sistemas Operacionais 112 Para pertencer a um grupo devemos configurar três opções que a grande maioria dos sistemas operacionais oferecem o dono do grupo o grupo ao qual pertence e outros Vamos verificar cada uma destas opções Donos ou Proprietários o dono da pasta ou arquivo referese a quem criou essa configuração é definida pelo administrador root para um deter minado arquivo ou diretório O nome do dono do arquivodiretório é o mesmo do usuário utilizado para entrar no sistema As permissões de acesso ao arquivodiretório somente podem ser modificadas por ele pois ele tem essa prerrogativa O id do usuário e o nome do grupo são gravados etcpasswd e etcgroup Na Figura 3 abaixo podemos visualizar como é configurada essa permissão em que possibilita aos donos e proprietários as permissões de ler gravar e executar uma pasta ou diretório Figura 3 Tipos de permissão Fonte Elaborado pelo autor com base em Morimoto 2008 Grupos é o grupo ao qual o usuário dono pertence e seu arquivo de configuração está localizado em etcgroup Esse recurso possibilita que vários 113 Gerenciamento de Usuários usuários tenham acesso ao mesmo arquivo do sistema Cada usuário pode pertencer a um ou mais grupos podendo acessar arquivos pertencentes ao mesmo grupo que o seu mesmo eles sendo de outro dono Outros segundo Tanenbaum 2009 outros são grupos externo de usu ários que não pertencem ao grupo padrão do arquivo ou diretório Quando é criado um novo usuário o grupo que ele pertencerá corresponde ao mesmo de seu primeiro grupo sendo o ID do grupo chamado de GID Group ID O usuário no entanto poderá ser inserido em mais grupos se desejar Você sabia Todas as configurações que podem ser adicionadas para um arquivo diretório são realizadas pela administração do sistema operacional Em suma temos três opções que podemos configurar um usuário usuário dono é o proprietário do arquivo grupo dono é um grupo que pode conter vários usuários outros se encaixam os outros usuários em geral 73 Permissões As permissões são de fundamental importância na administração de usuários Elas servem para proteger o sistema operacional arquivos e pastas de usuários mal intencionados e principalmente dar estabilidade no uso dos recursos disponibilizados pelo Sistema Operacional Manipular permissões é uma atividade que requer bastante atenção pois possui uma certa complexidade e lida com uma variedade de configurações 2 permissão de ser dono do arquivo ou diretório 2 permissão de pertencer a um grupo de usuários 2 permissão de outros Fundamentos e Gestão de Sistemas Operacionais 114 Cada privilégio concedido pode ser dividido em três níveis de permis são leitura r escrita w e execução x são essas configurações que podem ser distribuídas para donos de arquivos grupos e outros 2 permissão de leitura r 2 permissão de escrita w 2 permissão de execução x Os arquivos são criados com uma permissão padrão e podem ser modi ficados via comando Veremos mais adiante a especificação nos arquivos etcprofile que define para todos os usuários do sistema e no arquivo do usuário homeusuariobashprofile no Debian As permissões padrões que temos para arquivos e diretórios são as seguintes Permissões padrões para diretórios 2 dono ler r escrever w e executar x 2 grupo ler r e executar x 2 outros ler r e executar x Permissões padrões para arquivos 2 dono ler r e escrever w 2 grupo ler r 2 outros ler r No Linux temos essa permissão associadas a um número que pode variar de 0 a 7 para cada tipo de permissão Analise a Figura 4 abaixo temos três letras r w x dono r w x grupo r w x outros com essas permissões podemos variar as configurações para cada usuário Configuração de Permissão 4 Leitura 2 Gravação 1 Execução 115 Gerenciamento de Usuários Figura 4 Tipos de Permissão no Linux rwx rwx rwx Execução Dono Escrita Dono Leitura Dono Execução Outros Escrita Outros Leitura Outros Execução Grupo Escrita Grupo Leitura Grupo Tipo do Objeto Fonte Elaborado pelo autor 2016 No livro Sambando com Linux Ferrari 2009 enumera três números que indicam respectivamente as permissões de acesso para o dono grupo e para os outros Cada número representa a soma das permissões desejadas sendo que 0 Sem permissão alguma Acesso negado 1 Permissão apenas para executar não é possível ler o arquivo ou alterálo apenas executar um programa ou no caso das pastas permissão apenas para ver a lista dos arquivos dentro da pasta sem poder abrilos 4 Apenas leitura Se usado em uma pasta o usuário não conseguirá listar o conteúdo ou seja conseguirá abrir os arquivos apenas se indicar o caminho completo 5 41 Ler e executar no caso de um arquivo ou ver os arquivos e abrílos no caso de uma pasta 6 42 Leitura e gravação Assim como no caso do 4 se usado em uma pasta faz com que o usuário não consiga listar o conteúdo apenas acessar os arquivos diretamente 7 421 Controle total Fundamentos e Gestão de Sistemas Operacionais 116 Figura 5 Combinação de permissões no Linux rwx rwx rwx 4 2 1 4 2 1 4 2 1 7 7 7 Fonte Elaborado pelo autor com base em Tumblr Para um usuário que tivesse controle total sobre os arquivos diretório poderíamos configurar com as permissões 777 7 dono 7 grupo 7 outros Para servir de exemplo vamos dar permissão para o usuário Agnaldo já criado para que possa ter acesso total a todos os diretórios e subdiretórios de uma pasta chamada teste O comando ficaria assim chmod 775 teste Para aplicar permissão recursivamente aplicar a permissão no diretório e todos os seus arquivos e subdiretórios use a opção R chmod R 777 teste No sistema operacional Windows podemos realizar essas permissões clicando nas opções disponíveis para permissões dos arquivos Na figura 6 podemos observar as opções que temos para configurar as per missões nos arquivos dos sistemas operacionais Windows As modifi cações e tipos de permissões que são realizadas são definidas para cada arquivo que o administrador achar necessário Cada arquivo ou pasta possui permissões associadas e que podem restringir o acesso de usuários do Sis tema Como administrador você pode modificar essas permissões de acesso especiais Para modificar é preciso ser Figura 6 Opções para configurar permissões no Windows Fonte Elaborado pelo autor 2016 117 Gerenciamento de Usuários o proprietário do objeto ou ter permissão como administrador Para definir exibir ou alterar ou remover especiais no Windows siga os seguintes passos 1 Clique com o botão direito do mouse no objeto que deseja conceder permissões avançadas e em Propriedades e clique na guia Segurança 2 Na caixa escolha a opção Avançado e em Alterar Permissões 3 Na guia Permissões execute os seguintes procedimentos 2 Defina permissões de acesso especiais para um grupo ou usuário adicional Clique em Adicionar Em Digite o nome do objeto a ser selecionado digite o nome do usuário ou do grupo e clique em OK 2 Abra ou altere permissões de acesso especiais para um grupo ou usuário existente Clique no nome do grupo ou do usuá rio e clique em Editar para alterar as permissões 2 Para remover um grupo ou usuário existente e suas permis sões especiais realize o seguinte procedimento clique no nome do grupo ou usuário e clique em Remover Caso o botão Remover não estiver disponível desmarque a caixa de seleção Incluir permissões herdáveis provenientes do pai do objeto e clique em na opção Remover Saiba mais Para conhecer mais sobre as permissões de usuários Linux acesse o site jsbusinnes httpwwwjsbusinesscombrfocainiciantechpermhtm 74 Gerenciamentos de usuários Neste tópico vamos aprender como gerenciar esses usuários criando suas contas O Sistema Operacional não se restringe apenas para criar as per missões aos usuários mas serve para configurar o espaço que cada um deverá obter com sua conta Uma pessoa poderá ter seus próprios diretórios perso nalizar seus espaços e realizar suas próprias configurações O administrador do sistema tem como grande desafio o gerenciamento dessas configurações Fundamentos e Gestão de Sistemas Operacionais 118 Para criar gerenciar ou eliminar contas de usuários no Sistema Ope racional Linux é necessário estar autenticado com o super usuário root ou outro usuário que tenha privilégios de administrador Como vimos anterior mente apenas como superusuário é possível ter privilégios para manipular outras contas do contrário a segurança do sistema seria seriamente compro metida pois qualquer usuário poderia criar alterar ou apagar contas Importante O site httpwwwinfowestercomusuarioslinuxphp apresenta uma variedade de comandos do Sistema Operacional Debian para serem praticados Confira Criando Usuários MORIMOTO 2008 no artigo intitulado Gerenciamento de usuá rios grupos e permissões descreve as principias permissões que podemos encontrar no Linux adduser group grupo comando utilizado para criar um grupo de usu ários poderá ser utilizado o comando addgroup adduser home diretório usuário comando utilizado para definir o diretório home do usuário Se esse parâmetro não for usado o sistema criará o home no diretório padrão em homenomedousuário adduser uid número usuário comando utilizado para criar ID sequenciais Em algumas situações é necessário ter o controle do número ID dos usuários criados para manter uma organização melhor sobre os usuá rios Quando usuários são criados o sistema geralmente adiciona a eles UIDs sequenciais mas você pode especificar o UID que quiser usando o parâmetro uid seguido de um número adduser gid número usuário semelhante ao comando acima mas espe cifica manualmente um grupo para o usuário ao invés de criar um parâmetro adduser ingroup grupo usuário comando que adiciona o usuário criado a um grupo já existente ao invés de criar um novo grupo para ele 119 Gerenciamento de Usuários 75 Autenticação e seus tipos Segundo Tanenbaum 2011 o objetivo da autenticação consiste em identificar os diversos usuários que usufruem do sistema computacional e verificar por meio da autenticação se realmente o usuário é quem afirma ser Para isso várias técnicas são utilizadas Inicialmente a autenticação tinha por objetivo identificar apenas os usuários para garantir que somente eles devi damente credenciados teriam acesso ao sistema Hoje esse cenário mudou e também é necessário identificar o sistema para o usuário Quando um usuário acessa o site de um banco via internet ele gostaria de ter a certeza que aquele sistema é realmente do site do banco preterido e não um sistema falso Outro exemplo seria a instalação de um drive em uma máquina o sistema operacional deve assegurar que realmente provem de uma fonte confiável e que não possui um software malicioso sendo instalado Vamos tratar das principais técnicas de autenticação utilizadas para confirmar se os atores realmente são o que alegam ser Segundo Maziero 2013 as técnicas usadas para a autenticação de um usuário podem ser classificadas em três grandes grupos 1 SYK Something You Know algo que você sabe esta técnica consiste em analisar o nome e a senha de um usuário É conside rada uma autenticação falha pois facilmente alguém poderá repas sar a senha e usuário ou mesma ser roubada 2 SYH Something You Have algo que você tem esse tipo de autenticação é geralmente uma chave criptográfica ou algum dis positivo material como um smartcard um cartão magnético um código de barras etc São técnica mais eficazes que SYK mas tam bém podem ser roubados ou copiados 3 SYA Something You Are algo que você é se baseiam em características associadas a um usuário como seus dados biomé tricos impressão digital diferente do SYH que usam dispositivos nessa técnica de autenticação são usados elementos intrinsicamente associados a um usuário Fundamentos e Gestão de Sistemas Operacionais 120 Figura 7 Exemplo de características biométricas Fonte Elaborado pelo autor com base em Mazieiro 2013 A grande maioria dos sistemas utilizam autenticação de por loginsenha SYK Sistemas mais modernos SYH utilizam cartões smartcards ou técni cas SYA com a biometria como os sensores de impressão digital Sistemas computacionais modernos usufruem de uma mescla das técnicas de imple mentação chamada de autenticação multifator Como o sistema bancário que utiliza uma senha e um cartão para apurar a autenticidade do usuário alguns sistemas empregam cartões biometria e senha geralmente são locais de segurança máxima onde não pode haver falhas de segurança Importante Multifator esse sistema de senha misturando vários tipos de auten ticação garante que sua senha não será violada um invasor pode ter sua senha de acesso mas não uma identificação biométrica Resumindo Tivemos a oportunidade de aprender várias técnicas nessa aula e como melhor gerenciar um Sistema Operacional Linux Vimos o que são grupos de usuários e seus diferentes modelos existentes aprendemos sobre os tipos de grupos que podemos criar Estudamos também que o gerenciamento desses usuários é fundamental para que o sistema operacional possa tra balhar sem interrupções Sobre permissões e criação de usuário vimos a 121 Gerenciamento de Usuários importância de contextualizarmos o cenário empresarial para podermos criar os grupos quem é dono quem pertence a outros A autenticação de usuários por meio de senhas ou cartões e biome tria são recursos utilizados pelos gerenciadores de Sistemas Operacionais quando exige uma atenção maior no quesito segurança das informações O papel de gerenciamento de usuários requer prática e conhecimentos técni cos avançados para administrar diversas situações por isso deverá praticar exaustivamente todos os comandos e analisar seus efeitos na administração do Sistema Operacional 8 Segurança Caro aluno Neste capítulo vamos tratar sobre segurança um ponto cada vez mais importante no setor de tecnologia da informação Vamos conhecer as principais vulnerabilidades que um sistema operacional pode apresentar bem como as formas de prevenção Vamos conhe cer também o que gera estas vulnerabilidades e quais são as formas de garantir o menor esforço e prejuízo na recuperação destas infor mações conhecendo assim o conceito de segurança da informação Da mesma forma que a sua casa a sua rua ou a sua empresa está sujeita a falhas problemas e invasões o ambiente computacio nal também sofre este tipo de vulnerabilidades Seja por questões climáticas por má intensão de indivíduos ou por falhas em geral todo ambiente complexo deve ter formas de se prevenir Fundamentos e Gestão de Sistemas Operacionais 124 Para isso este capítulo apresentará os conceitos de técnicas de segurança da informação visando introduzir o conceito de gerência de riscos e vulnera bilidades Após isso o capítulo apresentará os principais aspectos de segurança em sistemas operacionais abrangendo os tipos de falhas o que pode gerar estas falhas e as principais formas de prevenção E por fim conheceremos ainda as falhas de segurança e suas formas de prevenção quando estamos em um ambiente distribuído onde dois ou mais computadores estão ligados em rede aumentando consideravelmente a probabilidade de falhas de segurança Objetivo de aprendizagem 2 Conhecer os conceitos de segurança da informação 2 Identificar as principais causas de falhas em ambientes tecnológicos 2 Compreender como ocorrem as falhas de segurança 2 Conhecer os mecanismos de prevenção de falhas 81 Técnicas de Segurança da Informação A gestão da segurança da informação é constituída pelos processos para garantir a proteção de informações sistemas recursos e dispositivos contra erros ataques desastres e acesso à informações não autorizadas A segurança da informação busca ainda reduzir o impacto e a probabilidade de incidência destas falhas de segurança COELHO ARAÚJO BEZERRA 2014 Estes conceitos são baseados em normas ISONBR propondo a implan tação de um catálogo de serviços de segurança Estes serviços são voltados à confiabilidade autenticidade integridade não repúdio conformidade con trole de acesso e disponibilidade A confidencialidade tratada na segurança da informação é voltada à proteção de dados contra acessos não autorizados utilizando criptografia e gerenciamento de permissões de usuários A autenticidade é ligada com a garantia de que o trâmite de dados seja autêntico sendo assim um dado enviado deve ser integralmente recebido garantido que seja exatamente a mesma informação 125 Segurança A garantia de integridade é focada em proteger os dados de alterações e exclusões realizadas por usuários não autorizados O não repúdio procura prevenir que seja possível garantir que um dado enviado possa ser provado o seu envio o mesmo servindo para a recepção A conformidade procura garantir que as transações entre os dados estão de acordo com as políticas institucionais da organização A conformidade faz com que estas transações sigam legislações do país as normas da empresa e os regulamentos em vigor por exemplo O controle de acesso busca restringir o acesso aos dispositivos do meio corporativo utilizando identificação e autorização para proteger o uso de usu ários não autorizados Já o controle de disponibilidade garante que estes dispositivos estejam disponíveis ao usuário que possui a sua permissão no local e momento em que este deveria acessálo A gestão da segurança da informação recomenda ainda a criação de um papel dentro da organização o CISO Chief Information Security Officer o gerente de segurança da informação Um profissional focado na garantia dos serviços de segurança dentro de um setor de tecnologia da informação Importante O papel do CISO segue a tendência das profissões de alta gerência como o CEO Chief Executive Officer que equivale a um diretor executivo CFO Chief Executive Officer que equivale ao dire tor financeiro e CIO Chief Information Officer Embora possa ser compartilhado com o CIO o papel do CISO é específico direcio nado à garantia da segurança da informação O CISO deve desempenhar seu papel criando o plano diretor de segu rança um documento que norteia o gerenciamento dos ativos para manter a política de segurança da informação Ele deve ainda realizar a manutenção contínua nos processos de análise de riscos e vulnerabilidades garantindo a segurança dos dados dentro da organização SÊMOLA 2003 Fundamentos e Gestão de Sistemas Operacionais 126 82 Segurança em Sistemas Operacionais Problemas gerados por falhas de dispositivos físicos de um computa dor são facilmente resolvidos pois em sua grande maioria basta substituir este equipamento O grande problema é quando a falha é gerada no sistema de arquivos quando há alguma falha de arquivos ou seja quando há perda de informações Ambientes computacionais no meio corporativo possuem dados e informa ções de alto valor e sigilosas É importante proteger estas informações dos pos síveis problemas bem como do uso das mesmas por usuários não autorizados Equipamentos podem chegar ao fim da sua vida útil ou podem conter falhas de fábrica quedas de energia falhas em equipamentos fenômenos da natureza como chuvas e raios que podem gerar falhas no sistema fazendo com que arquivos sejam perdidos Arquivos quando utilizados no âmbito profissional possuem custo intangível sendo assim arquivos perdidos podem causar grandes prejuízos à uma corporação Estes são problemas de segurança ligados às vulnerabilidades físicas que um sistema pode sofrer Existem ainda as vulnerabilidades de segurança liga das com usuários maliciosos que buscam destruir ou roubar informações de sistemas computacionais DEITEL DEITEL CHOFFNES 2005 Tanenbaum 2009 divide os problemas de segurança em três gru pos O primeiro é o grupo das ações divinas e são relacionadas às ações do tempo como enchentes terremotos incêndios maremotos temporais e ações de animais sobre o equipamento Ou seja são ações que hoje pode mos caracterizar como sendo ações do tipo naturais O segundo grupo o grupo de erros de hardware estão ligados ao mal funcionamento dos equipamentos falhas nos discos e erros de telecomunicações O terceiro e último grupo está ligado aos erros humanos quando estes são originados pelo usuário na montagem incorreta dos equipamentos mal uso perda de equipamentos e enganos em geral Para isso ao longo dos anos diversas abordagens foram desenvolvidas para garantir a integridade dos dados Vamos conhecer agora as principais vulnerabilidades conhecidas bem como as abordagens de segurança voltadas à prevenção destes problemas 127 Segurança 821 Tipos de vulnerabilidades Qualquer ambiente computacional no meio empresarial está sujeito a interferências de usuários intrusos que são classificados por Tanembaum 2009 em dois grupos o grupo dos intrusos passivos e ativos dividindo ainda em quatro categorias estas intrusões Os intrusos passivos apesar de não estarem autorizados querem apenas ler arquivos sem a devida permissão Já os intrusos ativos querem fazer alterações cópias ou exclusões em arquivos onde eles não possuem esta permissão Dentre as categorias das intrusões uma das classificações indica que os intrusos podem fazer alterações do tipo bisbilhotice casual onde os usu ários não envolvidos com o setor tecnológico ao compartilharem o mesmo ambiente ou computadores leem e acessam as informações umas das outras sem ter a devida permissão Há ainda a categoria de espionagem por pessoas de dentro neste caso usuários envolvidos com o setor tecnológico munidos de permissões mais privilegiadas buscam por motivações pessoais quebrar a segurança dos ambientes computacionais visando assim acessar informações alheias puramente pelo desafio pessoal de atingir esta meta Há ainda uma terceira categoria a da tentativa determinada de fazer dinheiro onde usuários técnicos atuam como intrusos dentro de ambientes computacionais do setor bancário e buscam burlar os mecanismos de segu rança para alterar valores de contas bancárias alterar taxas de juros e furtar valores Por último há ainda a categoria de espionagem comercial ou mili tar que atua de forma organizada por motivação de concorrência oposi ções e coalizões entre países e grandes companhias visando espionar projetos valores e planos Todas estas categorias utilizam as mais diversas abordagens para se infiltrar nos sistemas Uma das mais conhecidas é a de cavalo de Troia que de atua de forma análoga à estratégia grega para invadir a cidade de Troia utilizando um grande cavalo de presente Ela envia um arquivo aparentemente inofensivo Cavalo de Troia ao sistema terceiro sendo que ele possui instruções maliciosas para executar procedimentos indesejados e inesperados Estes comandos pro curam roubar dados do sistema terceiro de forma transparente para que estes sejam utilizados posteriormente pelo criador do Cavalo de Troia Fundamentos e Gestão de Sistemas Operacionais 128 Contudo a abordagem mais conhecida de intrusão ainda é o uso de vírus Estas abordagens utilizam instruções maliciosas dentro de terminados arquivos sendo que estas infectam outros arquivos do sistema de destino fazendo com que o vírus se prolifere pelo sistema Estes vírus são enviados junto a anexo de emails junto com arquivos de áudio vídeo jogos para que estes infectem outros Um vírus pode ser de setor de boot onde teste pode infectar o setor de inicialização do sistema operacional no disco do ambiente fazendo assim com que este vírus controle o sistema Um vírus pode ser também do tipo tran siente onde o arquivo infectado faz com que o vírus entre em ação apenas quando é executado Sendo assim quando finalizada a execução do arquivo a ação do vírus propriamente dita também é interrompida Diferente do vírus transiente há também o vírus residente que quando alojado no sistema este entra em ação sempre que a máquina está ligada finalizando apenas quando esta é desligada DEITEL DEITEL CHOFFNES 2005 Existem ainda os vírus do tipo bomba lógica onde os usuários técnicos com conhecimento avançado sobre o ambiente computacional da corporação até então devidamente empregados na empresa onde existe o sistema criam pro gramas maliciosos Estes problemas a princípio não causam problema algum mas caso estes usuários sejam demitidos ou por qualquer outro motivo quando acharem conveniente eles ativam esta bomba lógica fazendo com que arquivos sejam corrompidos ou excluídos por exemplo TANEMBAUM 2009 Os vírus em geral costumam ter o seu desenvolvimento complexo exi gindo alto conhecimento do sistema operacional e de programação porém existe uma outra categoria de vírus mais simples os vírus de macro Esta categoria é composta por vírus simples criados utilizando linguagens de pro gramação de fácil aprendizado baseado em arquivos comuns como Excel e Visual Basic A ação destes vírus é iniciada quando um arquivo simples como uma planilha do Excel utilizando macros em Visual Basic acessam alteram ou excluem alguns arquivos Há também os ditos vírus de códigofonte que faz uma varredura no disco buscando programas e altera o seu códigofonte procurando incluir seus códigos e fazer com que estes vírus sejam espalhados Outra forma de vírus 129 Segurança mais complexa de detecção é o polimórfico que altera sua forma cada vez que é instalado Estes vírus polimórficos apesar de ter a mesma funcionali dade cada vez que infecta arquivos muda a sua forma fazendo com que não seja identificado facilmente por softwares antivírus Existem os vírus criptografados eles infectam as máquinas estando criptografados Quando são executados eles são descriptografados assim eles também são mais difíceis de identificação por meio de antivírus Há ainda o vírus furtivo este vírus também busca não ser identificado Este busca alterar os locais do sistemas operacionais que teriam condições de identificálo Existe também o vírus de multipartite que se divide em vários infectando assim diversas partes do sistema operacional e dificul tando que ele seja detectado Há ainda o vírus blindado que é desenvolvido para que sua identifi cação por parte do antivírus seja complexa Um vírus blindado costuma ser compactado e sua infecção dentro do sistema operacional é distribuída desta forma SILBERSCHATZ 2008 Por fim há a abordagem de porta dos fundos uma espécie de vírus que faz acesso a todos os itens do sistema infectado Em um acesso via porta dos fundos os intrusos podem acessar qualquer informação ver os registros reali zados no sistema editar excluir e recuperar arquivos entre outros DEITEL DEITEL CHOFFNES 2005 Boot Processo do sistema operacional realizado quando o disco é inicializado e o sistema operacional é carregado na memória 822 Abordagens de Segurança A abordagem primária para prover segurança em sistemas operacionais é o controle de acessos por meio de autenticação Desta forma cada usuário do sistema operacional possui as suas devidas permissões sejam ela de escrita lei Fundamentos e Gestão de Sistemas Operacionais 130 tura alteração ou exclusão Este controle de usuários geralmente é baseado em senhas onde cada usuário possui sua chave para autenticação de sua escolha Porém existem formas de burlar este tipo de autenticação por senha A abor dagem em si já é consideravelmente fraca do ponto de vista da segurança pois os usuários costumam escolher chaves um tanto quando simples demais para uso como forma de segurança Visando suprir este problema vários sistemas criam regras com quantidade de caracteres para enriquecer a chave de acesso Mas da mesma forma ainda é possível burlar senhas por mais fortes e com plexas que elas sejam Um dos exemplos é a abordagem de força bruta onde programas específicos fazem diversas tentativas de submissão de senhas utilizando diversas sequências de caracteres Por isso existem ainda outros tipos de autenti cação para serem utilizados em conjunto com senhas ou de forma exclusiva Uma destas formas é a identificação física onde são utilizados cartões e leitoras bem como dispositivos de biometria para o uso de autenticação por impressão digital controle por voz DEITEL DEITEL CHOFFNES 2005 Porém mesmo controlando o acesso atribuindo permissões e geren ciando usuários e senhas ainda assim é necessário prover segurança em ambientes mesmo após a autenticação Por isso os dados senhas e arquivos armazenados no disco precisam de uma outra camada segura Em muitos sistemas em algum nível é utilizado o conceito de criptografia A criptografia soluciona diversos problemas de segurança em um ambiente computacional Ela é basicamente uma forma de codificar bits alterando sua forma para que quando necessário eles sejam decodificados Este conceito não é nada novo desde a antiguidade o ser humano costuma utilizar códigos e chaves para garantir confiabilidade e segurança A figura 1 exemplifica um processo padrão de cifragem e criptografia onde uma mensagem é escrita em texto puro comum e precisa novamente ser lida também em texto puro ou seja em linguagem comum Esta mensagem passa por um algoritmo de codificação que criptografa a mensagem em texto puro Antes da leitura um novo algoritmo munido da chave de decodifica ção transforma o texto então criptografado novamente em um texto puro em linguagem comum 131 Segurança Figura 1 Exemplo de comunicação segura por meio inseguro texto cifrado algoritmo de codificação D c Ekm atacante canal inseguro chave de decodificação k texto puro m Dkm mensagem m leitura escrita chave de codificação k mensagem m texto puro algoritmo de codificação E troca de chave Fonte Elaborado pelo autor com base em Silberschatz 2008 Quanto aos algoritmos existem diversos disponíveis para criar crip tografias Um deles é o algoritmo de codificação simétrica que utiliza o mesmo algoritmo que codifica também para decodificar Existe também o seu oposto o algoritmo de codificação assimétrica onde os métodos de codificação e de decodificação são diferentes Há ainda uma nova camada chamada de codificação com autenticação onde além de receber a mensa gem codificada o emissor deve também provar sua origem fornecendo uma autenticação junto com a mensagem SILBERSCHATZ 2008 Fundamentos e Gestão de Sistemas Operacionais 132 Com relação aos vírus de forma análoga às ciências naturais os sistemas operacionais possuem antídotos chamados de antivírus Estes são softwares que servem para a proteção do sistema operacional contra os softwares mali ciosos Os antivírus mantém listas com vírus conhecidos bem como os seus códigos Em geral cada vírus possui um atributo com uma espécie de assina tura este é o atributo armazenado nas listas dos antivírus Um antivírus costuma trabalhar com o conceito de verificação de assi natura onde ele detecta no sistema operacional a incidência de arquivos que contenham códigos contidos na lista de vírus e assinaturas conhecidas Um dos grandes problemas do uso das listas nos antivírus é que estas tornamse grandes em demasiado visto que a quantidade de vírus se prolifera exponen cialmente Além disso obviamente o antivírus é eficaz apenas com os vírus já conhecidos Sendo assim os vírus criados recentemente ou ainda não identi ficados pela assinatura no antivírus não serão detectados Com a quantidade de vírus assinaturas códigos e comportamen tos armazenados no antivírus há ainda a possibilidade de que ele detecte de forma falsa positiva comportamentos próximos do que sendo um vírus mesmo este arquivo não estando infectado e nem possuindo funções mali ciosas Uma solução para esta forma de atuação dos softwares de antivírus é utilizar a verificação heurística Esta abordagem partindo do princípio de que os vírus costumam atuar replicando informações destrutivas pelo sistema busca no disco arquivos que costumam replicar informações Utilizando a verificação heurística um software de antivírus é capaz de identificar vírus sem a assinatura em sua lista sendo assim esta abordagem consegue ser eficaz na proteção contra vírus novos Porém assim como na abor dagem tradicional a forma heurística também pode detectar erroneamente sendo assim é mais conveniente que os antivírus combinem as duas formas de verificação a heurística com a de assinatura Há ainda uma abordagem mais moderna que é a verificação em tempo real onde a cada execução de proces sos estes são verificados para constatar a existência de funcionalidades malicio sas nos arquivos em execução DEITEL DEITEL CHOFFNES 2005 Dentro do conceito de abordagens de segurança existem abordagens pre ventivas uma delas é a de backup Com esta técnica todos os dados gerados 133 Segurança pelo sistema e armazenados no disco são compactados e armazenados em uma nova instância Os mecanismos de backup devem ser periódicos garantindo que em uma determinada janela de tempo haverá uma cópia fiel dos arquivos daquela data armazenada em um outro local seguro Em geral os backups são armazenados em outros computadores Assim caso haja algum problema no computador em questão os dados estão armazenados em outro local É muito comum hoje que os dados de backup sejam armazenados não ape nas em um local Um backup pode ser armazenado na própria máquina em um segundo computador local ligado via rede ou ainda em um servidor na nuvem O objetivo do backup é garantir que havendo uma determinada necessi dade os dados tão valiosos para a corporação estarão seguros para que seja feito o restore Este é o processo de reverter os dados restaurando os mesmos do backup para que sejam devidamente utilizados no ambiente computacional padrão Ainda no âmbito dos ambientes uma abordagem muito eficaz para prover a segurança em sistemas operacionais é o uso da redundância onde a plataforma provê mais de um dispositivo para a mesma operação Desta forma há uma garantia de que caso haja alguma falha a operação não será impactada visto que existirá ao menos mais um dispositivo idêntico pronto para operar Você sabia Uma das principais abordagens de redundância é o uso do RAID Redundant Array of Independent Disks responsável por clonar discos rígidos em tempo real fazendo com que os discos sempre estejam redundantes Há também as abordagens preventivas de auditoria ligadas aos proces sos de criação de logs Esta abordagem consiste em criar logs para cada uma das operações realizadas no sistema operacional e são utilizadas para anali sar o comportamento destes processos Todas as operações são armazenadas em log de forma categorizada onde falhas intrusões e demais eventos são armazenados em categorias distintas Com a auditoria de logs é possível por exemplo verificar a incidência de ataques falhas entre outros SILBERS CHATZ 2008 Fundamentos e Gestão de Sistemas Operacionais 134 823 Níveis de Segurança O Departamento de Defesa dos Estados Unidos criou uma classifi cação de níveis de segurança em sistemas operacionais Estes níveis são divididos em quatro grupos de A à D onde A é o nível mais alto de segurança e por sua vez o nível D é o menos seguro DEITEL DEITEL CHOFFNES 2005 2 Nível D Todos os sistemas que não atendem às características de A à C são classificados como de nível D Este é o nível dos siste mas operacionais que não oferecem os princípios mínimos de segu rança taxados então como sistemas inseguros 2 Nível C Um sistema com esta classificação deve dividir os usuários e os dados Sendo assim para acessar os dados deve ser necessário possuir autenticação As informações dos usuários e grupos devem estar disponíveis apenas aos mesmos 2 Nível B Os sistemas de nível B além de possuírem todas as premis sas do nível C devem também possuir permissões centrais padrão criando classificações para objetos Estas classificações adicionam etiquetas aos arquivos informando o seu nível de permissão 2 Nível A Os sistemas de nível A devem atender a todas as caracte rísticas do nível B e por sua vez do nível C também além de exigir que toda a segurança do sistema seja verificada de forma completa 83 Segurança em Ambientes Distribuídos Além dos problemas com segurança que um sistema operacional deve prever normalmente em ambientes distribuídos onde há transações entre diferentes máquinas em rede há novos problemas que devem ser previstos Com o uso da internet os mesmos problemas são multiplicados surgindo ainda novos como invasões download de vírus DoS etc Vamos conhecer agora alguns dos mais comuns tipos de ataques pela rede bem como as abor dagens de segurança para limitálos 135 Segurança 831 Tipos de Ataques Em se tratando de internet boa parte dos ataques estão voltados à inva são No cinema diversos filmes abordam este tema onde hackers os pira tas da internet invadem sistemas e roubam senhas valores e informações Apesar de parecer um tema de ficção a invasão de sistemas é muito mais constante do que pode parecer Os usuários responsáveis pelas invasões costumam realizar diversas ten tativas nos mais variados ambientes e sistemas operacionais procurando violar a segurança do mesmo Quando esta tentativa é bem sucedida e realizada por um usuário externo e que não possui tal alteração isso se denomina invasão Estas invasões procuram roubar alterar e excluir dados ou até mesmo derru bar sistemas e serviços Existem ainda os ataques de recusa de serviço Denial of Service DoS que consistem basicamente em realizar um volume extremamente alto de acessos ao sistema fazendo com que o seu desempenho seja seriamente afe tado de tal forma a deixar com que ele fique indisponível DEITEL DEI TEL CHOFFNES 2005 Saiba mais Para conhecer mais sobre boas práticas para garantir a sua segurança na Internet o Comitê Gestor da Internet CGIbr desenvolveu a Cartilha de Segurança para Internet Acesse em httpcartilhacertbrlivro Disponível no formato PDF e no formato ePub para leitores de eBooks 832 Abordagens de Segurança A abordagem mais conhecida para oferecer segurança em redes é o uso de firewalls que são servidores colocados como intermediários entre dois pontos que servem para limitar o acesso entre determinadas portas Ele limita as conexões entre os computadores determinando quais endereços terão acesso à cada uma das portas de rede disponíveis para os serviços SILBERS CHATZ 2008 Fundamentos e Gestão de Sistemas Operacionais 136 Há ainda o uso das redes virtuais privadas VPNs redes que utilizam a internet para realizar conexões privadas utilizando protocolos mais seguros As VPNs utilizam túneis seguros para efetuar as comunicações exigindo autenticação para que a requisição seja autorizada Elas são alternativas eco nômicas às redes ponto a ponto de longa distância pois utilizam a mesma infraestrutura da internet Ainda no âmbito das redes com o crescimento das redes sem fio é necessário o uso de mecanismos de segurança também neste tipo de rede visto que as mais variadas transações já trafegam por este meio Como sendo uma rede padrão as redes sem fio também são susceptíveis ao uso de firewalls porém é necessário utilizar ainda outras abordagens Para isso existem os protocolos de segurança e criptografia em redes sem fio como o WEP Wired Equivalent Privacy o protocolo de privacidade equivalente à das redes sem fio que criptografa as informações para garantir que não haverá acessos à rede sem fio quando não há a devida permissão Há também o protocolo WPA Wifi Protected Access que também faz a crip tografia do WEP porém com maior quantidade de bits garantindo maior segurança DEITEL DEITEL CHOFFNES 2005 Outra abordagem cada vez mais crescente é o uso de assinaturas digi tais Esta abordagem utiliza a mesma ideia das assinaturas físicas escritas a mão onde cada assinatura digital corresponde à autenticação da identidade do usuário Elas são tecnologias que utilizam criptografias para representar uma codificação que corresponde à assinatura do usuário devidamente cadas trada em uma entidade certificadora competente As assinaturas digitais podem ser simples arquivos baixados a partir da entidade certificadora onde após o seu cadastro na mesma poderão ser uti lizados como forma de autenticação O sistema que necessita da assinatura digital no momento da autenticação verifica no disco a existência destes arquivos de assinatura digital Há a opção de assinaturas digitais por meio de pendrives onde o sistema só autenticará se encontrar na porta USB um dispositivo contendo a determinada assinatura Há ainda a opção de utilizar cartões inteligentes de assinatura digital onde através de uma leitura com um dispositivo específico o sistema valida a autenticação no cartão DEITEL DEITEL CHOFFNES 2005 137 Segurança Uma outra abordagem de segurança ainda é o uso da esteganografia que armazena de forma oculta uma informação dentro de outra como um metadado Na internet esta técnica é utilizada para garantir a autenticidade dos arquivos criando marcas dágua online em imagens músicas entre outros documentos Resumindo Se qualquer ambiente complexo é sujeito a falhas é papel de todo indi víduo saber evitalas sejam estas falhas naturais propositais ou involun tárias é necessário o constante aprendizado para que sua incidência seja reduzida O ideal é que falhas nunca ocorram e se ocorrerem estas devem ser estudadas para que não se repitam O conceito de segurança da informação trabalha neste sentido ana lisando erros e falhas clássicas para que não ocorram Por isso neste capí tulo você conheceu o papel do CISO um profissional focado na redução de falhas no ambiente tecnológico Você conheceu também quais são as falhas e vulnerabilidades que um sistema operacional pode estar susceptível conhecendo também as formas de evitar que ocorram Sendo assim continue seus estudos pois a área tecnológica está em constante evolução fazendo com que os sistemas sejam cada vez mais abrangente fazendo com que existam cada vez mais vulnerabilidades usu ários maliciosos vírus e falhas Por isso seja um CISO estude este papel e esteja preparado para os grandes desafios do meio tecnológico 9 Desempenho Independente do objetivo de uso sempre que pretendemos utilizar um sistema computacional para algo esperamos que este tenha uma performance aceitável Não há nada mais irritante do que utilizar um computador e ele não funcionar Em ambientes corporativos esta preocupação é ainda maior pois a falta de agilidade nos processos implica drastica mente na produtividade da corporação Sendo assim com a crescente popularização da informatização de processos é cada vez maior a necessidade de criar abordagens que possibilitem o monitoramento e o provisionamento de ambientes que forneçam melhor performance para os usuários Para isso o presente capítulo apresenta uma abordagem geral sobre os itens que influenciam diretamente no desempenho de sis Fundamentos e Gestão de Sistemas Operacionais 140 temas operacionais Aqui serão apresentados os fatores que influenciam no desempenho do ponto de vista do processamento do uso de memória e nos processos de entrada e saída para o armazenamento Objetivo de aprendizagem 2 Identificar os principais gargalos que influenciam no desempenho de sistemas 2 Conhecer as ferramentas e itens relacionados com a performance de processamento 2 Compreender as formas de monitoramento e de uso da memória para identificar como obter mais desempenho 2 Explicar a importância do monitoramento dos processos de armaze namento em disco como indicadores de performance 91 Desempenho de Processamento Boa parte das questões relacionadas com o desempenho em um sistema estão ligadas ao processamento da CPU Sendo assim para garantir desem penho e escalabilidade em um sistema computacional é necessário adquirir processadores para o ambiente que sejam compatíveis com a necessidade analisando a quantidade de usuários que utilizarão o ambiente a quantidade de usuários simultâneos que acessarão e o sistema que este ambiente utilizará DEITEL DEITEL CHOFFNES 2005 Saiba mais A empresa Adrenaline fez um comparativo entre os principais pro cessadores do mercado criando uma batalha entre os equipamen tos Intel x AMD comparando aspectos como temperatura consumo de energia processamento de vídeo etc httpadrenalineuolcombr2015092837338comparativode processadoresabatalhaamdvsintelnocpuchartadrenaline 141 Desempenho Para monitorar o desempenho do processamento é necessário analisar alguns atributos relacionados com a execução dos processamentos no sistema operacional NEMETH HEIN SNYDER 2004 O primeiro deles é a uti lização global de CPU que expressa o valor de operação total do processa dor Este atributo apresenta o uso global da velocidade do CPU O segundo é a média de cargas que apresentam os valores em média de processos que estão em execução no momento ou de processos que estão em espera para serem executados O terceiro atributo é o consumo de CPU por pro cessos onde são listados os processos em execução atual no sistema Desta forma é possível identificar quais são os processos que estão consumindo mais recursos Existe ainda o tempo de usuário que é a porcentagem de tempo empre gada pelo processador para executar aplicações invocadas pelo usuário Da mesma forma existe o tempo de sistema que mede a porcentagem de uso do processamento de processos invocados pelo próprio núcleo do sistema Outro atributo é referente às alterações de contexto por intervalo que apresenta a quantidade de vezes que o núcleo do sistema operacional alterou o processo em execução no momento Há também as interrupções por inter valo que ilustra a quantidade de interrupções que houveram no processo geradas pelo núcleo do sistema operacional ou por dispositivos de hardware Por fim há ainda o tempo de inatividade relacionado com a quantidade de tempo de inatividade dos processos e o tempo de espera que exibe a quan tidade de tempo de espera para os processos de ES do sistema operacional Importante Existe uma diferença importante entre o Desempenho e a Escalabili dade O desempenho está ligado à capacidade do sistema de operar de modo performático A escalabilidade diz respeito à capacidade do sistema de operar com diversos usuários simultâneos Um item costuma implicar no outro sendo assim a configuração de um sistema visando o desempenho pode não influenciar posi tivamente em sua escalabilidade sendo assim o desafio da arqui tetura de sistemas é garantir ambientes escaláveis e performáticos Fundamentos e Gestão de Sistemas Operacionais 142 Para verificar estes atributos a figura 1 apresenta o uso da ferramenta vmstat um comando do Linux que fornece em tempo real de forma sim plificada o uso de processamento de CPU do sistema A primeira linha do comando apresenta os valores de processamento médios entre a inicialização do sistema operacional e o momento atual As linhas a seguir são os valores atualizados geralmente a cada cinco segundos após a linha anterior Figura 1 Monitoramento de processos do servidor Fonte NEMETH HEIN SNYDER 2004 Nas colunas system no campo in fica o valor referente às interrup ções por intervalo e no campo cs apresenta as alterações de contexto por intervalo Nas colunas cpu no campo us ficam os valores de tempo de usuário no campo sy os valores de tempo de sistema em id ficam os valores de tempo de inatividade e em wa os valores de tempo de espera para processos de ES Com estes itens é possível identificar os principais gargalos de desempe nho do sistema operacional quando relacionados com os processos de proces samento A ferramenta vmstat apresenta de forma simplificada em tempo real o uso atual da CPU servindo como forma de monitoramento e diagnóstico da performance de processamento do sistema operacional Existe ainda o comando top no Linux figura 2 que monitora o desempenho de processamento sob outros aspectos A primeira linha do comando informa o tempo atual de uptime o número de usuários conecta dos ao sistema operacional no momento e a média de carga do processamento em 5 10 e 15 minutos em sequência NEMETH HEIN SNYDER 2004 143 Desempenho Figura 2 Comando top no Linux Fonte Elaborado pelo autor 2016 A segunda linha apresenta um resumo dos processos atuais Exibindo o total geral de processos a quantidade de processos em execução a quanti dade de processos em espera a quantidade de processos parados e a quanti dade de processos em modo zumbi A terceira linha representa os estados do processador contendo a porcentagem de uso para processos de usuário us a porcentagem de processos do kernel sy o tempo de inatividade id o tempo destinado para processos de entrada e saída wa o tempo dedicado às interrupções de hardware hi e o tempo dedicado às interrupções de software si NEMETH HEIN SNYDER 2004 Na quarta e na quinta linhas são exibidos os valores de uso de memória e na linha mem aparece o uso da memória física e na linha swap apare cem os valores de uso de memória virtual Por fim aparecem as linhas com os processos na primeira coluna aparece o PID com o número de identifica ção do processo na segunda coluna user aparece o usuário responsável por aquele processo a terceira e quarta colunas PR e NI apresentam a priori dade de agendamento do processo a coluna VIRT exibe a quantidade de uso da memória virtual no processo em questão Fundamentos e Gestão de Sistemas Operacionais 144 Na coluna RES é exibido o tamanho de memória física utilizada pelo processo na coluna SHR é exibido o total de memória compartilhada uti lizada pelo processo a coluna S apresenta o estado do processo podendo ser ele ininterrupto D executando R inativo S parado T e zumbi Z Ao final na coluna CPU aparece a porcentagem de tempo de CPU des tinada ao uso do processo em questão e na coluna MEM é exibida a por centagem de memória física destinada ao processo em questão NEMETH HEIN SNYDER 2004 A ferramenta top é um pouco mais completa do que a ferramenta vmstat Com este comando é possível verificar não apenas os parâmetros de uso atual de processamento mas também permite verificar parâmetros a cada processo Visando garantir maior desempenho sobretudo maior escalabilidade em ambientes computacionais uma das alternativas é o uso do multipro cessamento Esta técnica consiste em utilizar diversos processadores em um mesmo ambiente operacional fazendo com que toda a capacidade de proces samento seja balanceada entre as diversas unidades do ambiente Existem basicamente três formas principais para se obter o multiproces samento Uma delas é o uso de vários processadores em um mesmo compu tador onde a arquitetura da máquina permite a troca e a alocação de mais de um processador por vez A segunda alternativa é quando os processadores já possuem mais de um núcleo permitindo o multiprocessamento com apenas um processador Há ainda a terceira alternativa onde é construído um cluster de vários computadores ou seja mais de um computador processa as mesmas informações visando balancear o processamento entre as diversas máquinas NEMETH HEIN SNYDER 2004 O Windows também possui a sua própria ferramenta para monitora mento de processos Figura 3 Ele apresenta os processos que estão consu mindo mais CPU e a quantidade de memória utilizada a porcentagem de processamento total do CPU sendo que na aba processos de forma seme lhante ao comando top do Linux o usuário pode verificar o desempenho de cada processo do sistema NEMETH HEIN SNYDER 2004 145 Desempenho Figura 3 Gerenciador de Tarefas do Windows Fonte Elaborado pelo autor 2016 CPU Unidade Central de Processamento Central Proces sing Unit parte do ambiente computacional responsável pelo processamento aritmético e o controle de entrada e saída de dados representado também como processador Uptime Tempo de atividade desde o início da exe cução Por exemplo desde o início da execução de um processo desde o início da execução do sistema operacional desde que a máquina foi ligada Cluster Grupo de computadores ligados em sequ ência visando o uso para o mesmo fim Desta forma um dos principais gargalos de desempenho em um sistema operacional tornase o processamento Sendo assim é importante conhecer as ferramentas de monitoramento de processos do sistema operacional em questão visando identificar quais processos estão consumindo desempenho da CPU Fundamentos e Gestão de Sistemas Operacionais 146 92 Desempenho de Memória Para garantir um bom desempenho de um sistema operacional boa parte do sucesso desta operação devese ao desempenho de memória principal Em computadores pessoais por exemplo para boa parte das operações depende do uso de memória sendo assim a velocidade do computador não está ligada diretamente à velocidade do processador mas sim à capacidade de memória Em estruturas computacionais do meio corporativo como em computa dores que operam como sendo servidores o desempenho de um sistema deve se em grande parte também à capacidade de memória De nada adianta o servidor possuir equipamentos de boa procedência ou diversos processadores com alta velocidade se não houver boa capacidade de memória Isso ocorre pois como é na memória que as informações são trafegadas entre o processador e o disco Uma máquina com boa capacidade de memória acaba auxiliando em muito no desempenho de um sistema pois como na memória são armazenados os dados para futuros acessos quanto mais dados a memória é capaz de armazenar temporariamente mais rápido é o sistema visto que mais dados foram armazenados temporariamente para futuros aces sos NEMETH HEIN SNYDER 2004 Ao implantar um ambiente computacional para uma determinada ope ração é necessário que ao criar a arquitetura para o ambiente seja verificado se o mesmo possui a quantidade de memória suficiente Dados os atuais pre ços para os pentes de memória cada vez mais baixos é comum investir em ter a capacidade máxima de memória do ambiente Para medir o desempenho de memória no sistema operacional os atri butos que são monitorados são o total de memória virtual ativa a quantidade de swap e a quantidade de paginação Para garantir o desempenho de memó ria o objetivo é reduzir o uso de memória até que os valores de paginação sejam reduzidos NEMETH HEIN SNYDER 2004 No Windows é possível verificar também o uso de memória no Geren ciador de Tarefas figura 3 enquanto no Linux por exemplo utilizando o comando free figura 4 é possível verificar a quantidade uso de memória na primeira linha memória total utilizada e livre na terceira linha o uso de swap e na última linha a memória virtual total 147 Desempenho Figura 4 Comando free para verificar a memória Fonte Nemeth Hein Snyder 2004 Este comando free tem como principal objetivo exibir de forma simples o uso atual de memória física e virtual tornando a operação mais simples Sendo assim em casos extremos e em emergências a ferramenta apresenta informações simples e rápidas de interpretação podendo a partir disso o administrador de sistemas tomar suas devidas providências No comando vmstat figura 1 apresentado no item anterior 51 também é possível monitorar os processos de memória no sistema opera cional Dentro da coluna memory o setor swpd apresenta a quantidade de memória virtual em uso no momento o setor free apresenta a quanti dade de memória livre e buff apresenta a quantidade de memória usada em buffers cache indica a quantidade de memória utilizada como cache Na coluna swap o setor si indica a quantidade de memória vinda do swap em disco swapped in e o setor so indica a quantidade de memória armazenada no swap swapped out NEMETH HEIN SNYDER 2004 Esta ferramenta é um pouco mais completa pois apresenta divisões diferen tes para os atributos de memória fornecendo um monitoramento temporal para o diagnóstico em tempo real dos gargalos de memória no sistema operacional Swap processo de troca de dados entre a memó ria virtual e a memória física criada pelo sistema operacional para armazenamento no disco Fundamentos e Gestão de Sistemas Operacionais 148 Serviços específicos instalados sobre o sistema operacional também pos suem suas próprias ferramentas para o uso de memória O servidor de aplica tivos web Java Apache Tomcat APACHEORG 2016 possui a sua própria ferramenta de monitoramento figura 5 Nesta ferramenta as instâncias de memória da máquina virtual Java são monitoradas exibindo a quantidade de memória inicial total máxima e a porcentagem de uso Figura 5 Ferramenta de Monitoramento do Apache Tomcat Fonte Elaborado pelo autor 2016 O Eden Space é relacionado com o espaço de memória alocado para os objetos do programa Survivor Space é destinado ao armazenamento de pro cessos que sobreviveram à coleta de lixo de objetos Java O Tenured Gem armazena os objetos que já ficaram muito tempo no Survivor Space a Code Cache é destinada ao armazenamento de códigos fonte para a compilação e armazenamento rápido dos programas NEMETH HEIN SNYDER 2004 Como foi visto é possível verificar que existem inúmeras formas de mensurar a capacidade de memória de um sistema operacional Dada a importância dos dispositivos de memória para a garantia da performance e 149 Desempenho escalabilidade de um ambiente computacional o correto provisionamento de memória bem como o constante monitoramento do seu desempenho é um fator decisivo no sucesso de uma informatização 93 Desempenho de Armazenamento Outro ponto importante para o bom desempenho de um ambiente operacional são as variáveis ligadas ao desempenho de armazenamento É necessário que o ambiente possua capacidades de armazenamento voltadas ao desempenho Não basta possuir alta velocidade de processamento alta capacidade de memória se não houver velocidade nos processos de entrada e saída de discos de armazenamento O armazenamento em disco pode ter o seu desempenho mensurado por diversos atributos Um deles é o RPM um atributo de fábrica do disco que indica a quantidade de rotações por minuto que o disco é capaz de realizar Este atributo influencia diretamente na velocidade com que o disco opera para buscar e acessar os dados dentro da estrutura do disco Sendo assim quanto maior o RPM maior a velocidade Outro item que influencia na velocidade do disco é capacidade de memória buffer para a transferência e a taxa de transferência de dados A memória buffer é um espaço de memória utilizado para acessar de forma mais rápidas os dados fazendo com que o cálculo de armazenamento seja anteci pado mesmo antes do uso do processador Boa parte do desempenho de armazenamento devese as taxas de entrada e saída de disco Estas operações são medidas em transferências de ES blocos lidos por segundo blocos escritos por segundo total de blocos lidos e total de blocos escritos A figura 6 apresenta o comando Linux iostat para medir as capacidades de ES para cada disco Cada linha representa um disco onde a coluna tps representa a taxa de transferências de ES por segundo a coluna Blkreads representa os blocos lidos por segundo a coluna Blkwrtns representa os blocos escritos por segundo a coluna Blkread representa o total de blocos lidos e por fim a coluna Blkwrtn representa o total de blocos escritos NEMETH HEIN SNYDER 2004 Fundamentos e Gestão de Sistemas Operacionais 150 Figura 6 Comando iostat para medir a ES com o disco Fonte NEMETH HEIN SNYDER 2004 Você sabia Em geral dada a sua arquitetura e as distintas formas de instalação des tinadas aos mais diversos dispositivos os sistemas operacionais consi derados com o melhor desempenho são os baseados na família Unix Para mensurar o desempenho de discos dentro do sistema operacional utilizando sistemas Linux é possível mensurar o desempenho dos discos utili zando a ferramenta hdparm figura 7 Figura 7 Comando hdparm para medir o desempenho de um disco Fonte Elaborado pelo autor 2016 Com esta ferramenta para cada disco é possível constatar a velocidade de trâmite de dados no disco Para isso o comando retorna os dados de velo cidade divididos entre o tempo de leitura de dados em cache e em buffer A primeira coluna exibe o volume de dados utilizados para o cálculo do teste seguido do espaço de tempo ao final aparece o resultado da velocidade utili zando como unidade de medida os megabytes por segundo Quando maior este número mais rápido é este disco 151 Desempenho De nada adianta implantar um sistema rápido capaz de trafegar dados com extrema velocidade entre os discos sem que se tenha certeza disso Por isso antes de enviar para a produção um novo servidor ou um novo serviço é papel do responsável testar esta sua eficiência Para isso existem ferramentas capazes de realizar Testes de Stress que são testes que simulam diversos aces sos simultâneos préconfigurados Assim durante o teste é possível monitorar todos os parâmetros e verificar quantos usuários o ambiente suporta sem perda de desempenho A ferramenta livre JMeter da Apache é capaz de realizar estas operações em sistemas web onde de qualquer computador é possível disparar testes em aplicações instaladas no servidor que se deseja estressar Figura 8 Ferramenta JMeter para testes de Stress Fonte Elaborado pelo autor 2016 Quadro 1 Comparativo entre os comandos Ferramenta Sistema Operacional Tipo de Verificação Objetivo vmstat Linux Memória Processa dor ES Analisa de forma consolidada o desempenho do sistema operacional top Linux Memória Processa dor ES Analisa de forma analítica o desem penho do sistema operacional Fundamentos e Gestão de Sistemas Operacionais 152 Ferramenta Sistema Operacional Tipo de Verificação Objetivo Gerenciador de tarefas Windows Memória Processa dor ES Analisa de forma analítica e con solidada o desempenho do sistema operacional JMetter Windows e Linux Teste de Stress Simular diversos acessos simultâ neos visando medir o desempenho de um serviço free Linux Memória Verificar o uso de memória iostat Linux ES de Disco Verificar o desempenho de ES no disco hdparm Linux Disco Verificar o desempenho de armaze namento Fonte Elaborado pelo autor 2016 O quadro 1 apresenta um comparativo entre as diferentes ferramentas apresentadas no capítulo bem como seus objetivos de uso Mais do que unicamente armazenar o administrador de sistemas deve ter ciência de que os dispositivos de armazenamento devem possuir capacidades de fornecer o melhor desempenho possível tanto nas operações de entrada e saída quando nos procedimentos internos de armazenamento Sendo assim é necessário antes de iniciar a implantação de um ambiente operacional uma intensa pesquisa de mercado para adquirir discos com capacidades de desem penho compatíveis com o uso que será dado a este sistema Garantindo assim a sua performance e escalabilidade Resumindo Da forma com que as organizações estão cada vez mais informatizadas é imprescindível estudar e compreender sobre os fatores relacionados com o desempenho de sistemas operacionais Por isso o constante estudo na área de desempenho torna possível o desenvolvimento de arquiteturas de ambientes computacionais capazes de ope 153 Desempenho rar com performance e escalabilidade permitindo que estes ambientes sejam cada vez mais rápidos e suportem cada vez mais usuários simultaneamente Neste capítulo você conheceu os principais itens que influenciam na performance de um sistema e identificou quais são os conceitos relaciona dos com o desempenho performance e escalabilidade de um sistema Você conheceu também as principais formas conceitos e ferramentas envolvidas no monitoramento e no diagnóstico de problemas de desempenho nos atri butos relacionados com o processamento memória e armazenamento Continue aprimorando seus conhecimentos na área de desempenho pois mais do que simples computadores as organizações necessitam de um setor de tecnologia da informação organizado e ativo capaz de garantir a maior eficiência possível de seu parque tecnológico Sendo assim a sua cons tante atualização em técnicas de performance ferramentas de monitoramento e diagnóstico de desempenho e testes de escalabilidade são imprescindíveis para este setor da cadeia produtiva 10 Sistemas Operacionais do Mercado Aplicabilidade e Aplicativos de Gestão Caro aluno Os sistemas operacionais possuem objetivos e funcionalidades disponíveis para as mais variadas ocasiões de segmentos do mer cado Sendo assim cada sistema possui suas próprias peculiaridades fazendo com que a escolha do sistema operacional para cada aplicabi lidade seja essencial Para o uso em ambiente executivo por exemplo há sistemas operacionais mais indicados já para o meio corporativo de servidores há um perfil de sistema operacional determinado Além da grande gama e das variações que existem entre os pró prios sistemas operacionais existem ainda abordagens avançadas que fazem com que a manutenção e a administração de ambientes corporativos sejam realizadas de forma mais efetiva e profissional como o acesso remoto e a virtualização Fundamentos e Gestão de Sistemas Operacionais 156 Para isso este capítulo apresentará os principais sistemas operacionais disponíveis no mercado de tecnologia da informação suas aplicabilidades e apresentará também ferramentas para controle e redução de infraestrutura utilizada em sistemas operacionais Aproveite este capítulo para aprofundar os seus estudos criando assim mais intimidade com este tema tão importante para o segmento de tecnolo gia da informação pois cada ferramenta de um sistema operacional tem seus objetivos e conhecer cada uma delas garante maior base para implantações futuras em ambiente computacionais Objetivo de aprendizagem 2 Identificar os principais sistemas operacionais do mercado e suas aplicabilidades 2 Conhecer os objetivos de cada sistema operacional para as diversas operações que cada um dispõe 2 Compreender os principais protocolos e ferramentas para realizar acesso remoto à outros sistemas operacionais 2 Conhecer os conceitos e ferramentas utilizadas para criar arquiteturas de virtualização 101 Sistemas Operacionais do Mercado Dependendo dos objetivos do uso cada usuário seja ele pessoal ou cor porativo possui algumas opções de sistemas operacionais disponíveis no mar cado para adotar Para garantir a sua escolha é necessário observar sua expe riência com informática orçamento equipamentos e objetivos Cada sistema operacional possui objetivos bem definidos podendo se dizer que para cada objetivo cada usuário possui o seu sistema operacional ideal Existem sistemas operacionais voltados para o meio corporativo Para uso como servidores existem ainda sistemas operacionais destinados à dis positivos específicos como relógios inteligentes e telefones para pequenos dispositivos e para grandes computadores Os sistemas operacionais podem 157 Sistemas Operacionais do Mercado Aplicabilidade e Aplicativos de Gestão ser capazes de rodar a partir do disco ou em dispositivos USB como pendrives ou até mesmo pela rede Você sabia Existe um sistema operacional para desktop que era capaz de rodar a partir de um simples disquete Tratase do MenuetOS um sistema operacional levíssimo que possui diversas funcionalidades de um sis tema operacional de mercado como servidor http suporte a USB placas de vídeo TV digital streaming e games Fonte httpwwwmenuetosnet Nesta seção você irá conhecer os principais sistemas operacionais utili zados no mercado bem como as suas principais ferramentas e aplicabilidades 1011 Windows O Windows sistema operacional da Microsoft é o sistema operacional mais utilizado e difundido do mercado sendo o padrão para a esmagadora maioria dos usuários NETMARKETSHARE 2016 Ele é o principal pro duto do conhecido Bill Gates fundador da companhia e criador do sistema operacional lançado em 1985 É um sistema operacional relativamente simples de aprendizado e é muito indicado para usuários básicos que necessitam utilizar apenas fer ramentas simples e que não necessitam realizar operações avançadas Ele já é integrado com diversos aplicativos clássicos de escritório e sua instalação e manutenção tornase simples visto que é um sistema operacional muito difundido e utilizado por todo o mercado de tecnologia da informação O Windows ainda é o sistema operacional mais difundido no mundo dos games visto que boa parte dos grandes jogos de computador disponíveis no mercado estejam disponíveis apenas para a plataforma Windows Graças a este foco fabricantes de placas de vídeo investem em recursos e em compa tibilidades com este sistema operacional tornando o Windows o padrão para games no computador OGLETREE 2002 Fundamentos e Gestão de Sistemas Operacionais 158 Porém embora seja muito utilizado por usuários domésticos e em escritó rios o Windows também é amplamente utilizado em ambientes corporativos com em servidores Este sistema operacional também possui versões específicas para servidores como o Windows NT Server e o Windows Server 2012 Estas versões para servidor funcionam como base para rodar ambientes voltados à execução de serviços baseados em Windows como Microsoft SQL Server o servidor de banco de dados da Microsoft o IIS Internet Informa tion Services servidor de páginas web da Microsoft e as aplicações baseadas em Net a plataforma de desenvolvimento de software da Microsoft Existem ainda diversas outras aplicabilidades corporativas pois dados os anos de intensa popularidade entre seus usuários é muito comum que outros fabricantes invis tam na compatibilidade apenas com ambientes baseados em Windows Figura 1 Captura de tela do sistema operacional Windows Fonte Elaborado pelo autor 2016 Exemplos de investimentos em compatibilidade entre fabricantes é o uso do Windows como único sistema operacional capaz de se conectar a impressoras de corte específicas equipamentos de diagnóstico eletrônico de exames sensores específicos entre outros Desta forma embora a grande popularidade do Windows diminua com o decorrer dos anos ele ainda é 159 Sistemas Operacionais do Mercado Aplicabilidade e Aplicativos de Gestão muito utilizado fazendo com que ele seja sempre compatível com diversos fabricantes de dispositivos OGLETREE 2002 1012 Linux O Linux na verdade não é um sistema operacional ele tratase na ver dade de uma versão do UNIX um sistema de alto desempenho desenvolvido nos anos 60 e distribuído de forma livre Com esta premissa nos anos 90 Linus Torvalds com base no UNIX desenvolveu o Linux como sendo uma implementação UNIX também livre para distribuição Desta forma não há um sistema operacional denominado Linux exis tem várias distribuições que implementam o kernel do Linux como o Linux Ubuntu o Linux Fedora SuSE SlakwareMintRedHat Debian entre mui tos outros Sendo assim cada distribuição Linux também possui suas devidas características e objetivos De forma geral o sistema operacional Linux não é totalmente voltado ao uso doméstico e em escritórios embora seja capaz de atender satisfatoria mente também esta necessidade As distribuições Linux costumam ser volta das a ambientes computacionais focados em servidores pois possuem grande flexibilidade e desempenho Como o Linux é um sistema operacional livre em geral não há custos para instalar uma distribuição tornando o orçamento de todo um parque tecnológico um tanto quanto mais em conta visto que para cada máquina não é necessário em investir nas licenças do sistema operacional Apesar de boa parte das distribuições Linux serem gratuitas os sistemas baseados em Linux são muito versáteis Existem diversos pacotes de serviços préinstalados e configurados que com o conhecimento específico das ferramentas e coman dos Linux tornam uma operação em servidores algo robusto e funcional NEMETH HEIN SNYDER 2004 Mesmo sendo os mais conhecidos os sistemas baseados em Linux não são os únicos sistemas operacionais da Família UNIX disponíveis no mercado Exis tem ainda os sistemas baseados em BSD que também foram feitos com base em UNIX e são amplamente utilizados em ambientes de servidores sendo sempre Fundamentos e Gestão de Sistemas Operacionais 160 destinados à aplicações de alto desempenho Exemplos de sistemas operacionais baseados em BSD são o FreeBSD OpenBSD Solaris OpenBSD e o NetBSD Figura 2 Captura de tela de uma distribuição Linux Mint Fonte Elaborado pelo autor 2016 1013 Mac OSX Antigamente conhecido como Macintosh OSX é o sistema operacional elaborado por Steve Jobs em 1984 para os computadores da empresa Apple Diferentemente dos outros sistemas operacionais do mercado os sistemas da Apple desde o Macintosh até o OSX são voltados para operar apenas em computadores de arquitetura específica ou seja voltados apenas à especifica ções da própria empresa O OSX é um sistema operacional de fácil operação que atende as neces sidades de usuários domésticos e de escritórios comuns porém seu grande foco está no mercado de criação artística Boa parte dos softwares de edi ção de mídia começaram sua operação justamente em ambiente Macintosh sendo assim tornouse referencia no segmento Os computadores Apple com OSX são amplamente utilizados em ambientes de criação gráfica edição de vídeo e de produção musical Existem 161 Sistemas Operacionais do Mercado Aplicabilidade e Aplicativos de Gestão diversos softwares disponíveis apenas para o sistema operacional OSX justa mente com este fim fazendo dos computadores Apple o foco de operação neste ramo da cadeia produtiva As primeiras versões do Macintosh eram baseadas no kernel do sistema BSD sendo que até hoje com o OSX o sistema é baseado na família UNIX É um sistema estável e de simples operação permitindo diversas operações domésticas e corporativas suportando também servidores e diversas funcio nalidades ligadas às diferentes mídias PROGUE 2010 Figura 3 Captura do OSX utilizando software para produção musical Fonte Elaborado pelo autor 2016 Importante O OSX é amplamente utilizado no meio musical sendo pratica mente um padrão nesta indústria Existem diversos equipamentos de gravação compatíveis somente com OSX Fundamentos e Gestão de Sistemas Operacionais 162 1014 Sistemas Operacionais para Dispositivos Móveis No mercado de dispositivos móveis como de celulares inteligentes tablets netbooks e relógios inteligentes existem também seus sistemas opera cionais específicos para estas operações Os mais conhecidos são os sistemas operacionais Android iOS e Windows Phone Ele é o sistema operacional móvel mais utilizado no mercado compatível ainda para integração com diversos outros dispositivos e ferramentas O sistema operacional Android hoje pertencente ao Google é baseado em Linux sendo assim pode ser considerado uma distribuição Linux espe cífica para dispositivos móveis É utilizado em 57 dos dispositivos móveis estando disponível para telefones celulares tablets relógios inteligentes net books entre outros NETMARKETSHARE 2016 É um sistema altamente flexível com uma gama muito grande de apli cativos disponíveis para download em seus dispositivos desenvolvidos em um ambiente baseado em Java fazendo com que o seu desenvolvimento de apli cativos seja simplificado O iOS é o sistema operacional da Apple destinado aos dispositivos móveis da companhia O mesmo roda sobre os celulares iPhone os tablets iPad players de mídia iPod e relógios inteligentes Apple Watch É ampla mente compatível com o OSX permitindo a interoperabilidade entre dispo sitivos Apple extremamente simples e funcional Possui também uma loja de aplicativos com diversos programas para download no aparelho desenvolvidos sobre uma plataforma própria da Apple destinada apenas à aplicativos do seu sistema operacional iOS Ele opera em 35 dos dispositivos móveis do mercado e foi o precursor do conceito de Multitouch suportando diversos toques simultâneos para realizar opera ções no aparelho Por fim o Windows Phone é o sistema operacional da Microsoft para dispositivos móveis Ele opera em aparelhos celulares e tablets compatíveis suportando também o download de aplicativos específicos para a plataforma desenvolvidos utilizando tecnologias padrão Microsoft 163 Sistemas Operacionais do Mercado Aplicabilidade e Aplicativos de Gestão 102 Acesso Remoto Com o uso distribuído dos recursos computacionais com base na internet o acesso a computadores e servidores à distancia é uma necessidade comum nos ambientes corporativos da atualidade Sendo assim os sistemas operacionais implementam protocolos e ferramentas de acesso remoto à seus terminais Uma das ferramentas mais simples para realizar o acesso remoto entre os mais diversos sistemas operacionais é o TeamViewer capaz de permitir o con trole e o compartilhamento de telas em tempo real bastando os dois terminais possuírem a ferramenta instalada Existe também o protocolo SSH Secure Shell Ele é um protocolo de acesso remoto via prompt de comando para controle via rede de ambientes computacionais baseados em UNIX Embora ele sirva para acessar máqui nas UNIX existem diversos clientes que implementam o protocolo SSH que permitem o seu acesso sendo assim qualquer sistema operacional com um cliente SSH pode fazer acesso à uma máquina via SSH Para que seja feito o seu uso basta que o computador de destino imple mente este protocolo e que o computador que deseja acessálo tenha o cliente de SSH A figura 4 apresenta uma máquina Windows com o cliente Putty acessando via SSH um servidor Linux via prompt de comando Figura 4 Máquina Windows com acesso remoto a um Linux via SSH Fonte Elaborado pelo autor 2016 Fundamentos e Gestão de Sistemas Operacionais 164 Cliente Em ambientes distribuídos o cliente é o computa dor que consome recursos realizando operações no servidor Servidor Computador do ambiente distribu ído responsável por fornecer os recursos onde são realizadas as operações do cliente Há ainda o RDP Remote Desktop Protocol um protocolo utilizado para acessar remotamente ambientes nativos Windows Para haver o controle via RDP é necessário que o protocolo esteja liberado na máquina de destino e que a máquina que deseja acessála possua um cliente RDP Existem clientes disponíveis em diversos sistemas operacionais A figura 5 apresenta uma máquina Windows acessando um servidor Windows utilizando o protocolo RDP Figura 5 Máquina Windows com acesso remoto via RDP Fonte Elaborado pelo autor 2016 165 Sistemas Operacionais do Mercado Aplicabilidade e Aplicativos de Gestão 103 Virtualização Para permitir a alocação de sistemas operacionais distintos permitindo a operação distribuída e simultânea em uma mesma infraestrutura compu tacional foi criado o conceito de virtualização Que tratase da divisão de uma única unidade de processamento para que esta tenha a capacidade de simular a existência de mais de uma CPU por máquina TANENBAUM VAN STEEN 2007 Na virtualização o ambiente operacional transforma uma única máquina física em várias outras máquinas iniciadas de forma virtual Esta abordagem visa reduzir os custos e os espaços físicos da infraestrutura de tecnologia da informação diminuindo toda a estrutura multiplicando a existente em diversas instâncias VERAS 2011 A figura 6 ilustra a arquitetura de um ambiente virtualizado quando um único computador destinado a ser o servidor físico possui instalada a camada de abstração o servidor virtual Este servidor de virtualização instanciou mais três máquinas virtuais cada uma com o seu próprio sistema operacional possuindo em cada uma delas as aplicações específicas operando de forma autônoma Figura 6 Arquitetura de Virtualização APLICAÇÕES SISTEMA OPERACIONAL 1 MÁQUINA VIRTUAL 1 SERVIDOR VIRTUAL CAMADA DE ABSTRAÇÃO SERVIDOR FÍSICO APLICAÇÕES SISTEMA OPERACIONAL 2 MÁQUINA VIRTUAL 2 APLICAÇÕES SISTEMA OPERACIONAL 3 MÁQUINA VIRTUAL 3 Fonte Elaborado pelo autor com base em VERAS 2011 Fundamentos e Gestão de Sistemas Operacionais 166 Os servidores de virtualização utilizando os dispositivos físico do servi dor como placa de rede discos e memória dedicam partes destes para serem divididos entre as máquinas virtuais que serão criadas Sendo assim um com putador que possui 8 gigabytes de memória RAM e 1 terabyte de capacidade no disco pode alocar 2 gigabytes de memória e 100 gigabytes de espaço para cada máquina virtual operar O virtualizador cria equipamentos virtuais que simulam o comporta mento da placa de rede placa de som portas USB e demais dispositivos fazendo com que as máquinas virtuais possuam as mesmas funcionalidades de um computador comum Desta forma é possível obter diversos serviços em máquinas diferentes rodando sob a mesma infraestrutura TANENBAUM VAN STEEN 2007 Figura 7 Virtualizador VirtualBox configurando os dispositivos virtuais Fonte Elaborado pelo autor 2016 167 Sistemas Operacionais do Mercado Aplicabilidade e Aplicativos de Gestão Saiba mais A virtualização é a base da Computação em Núvem a abordagem que virtualiza a infraestrutura para aplicações via internet Para conhecer melhor sobre o conceito de Computação em Nuvem conheça o Ebook da Endeavor Cloud Computing na Prática httpinfoendeavororgbrcloudcomputingnapratica Resumindo Técnicas como de virtualização e acesso remoto são essenciais dada a elevada situação atual do meio tecnológico Cada vez mais corporações estão buscando a informatização dos seus processos sendo assim o investimento em infraestrutura é crescente Quando existem opções sustentáveis para o controle e a implantação de dispositivos tecnológicos de forma remota e vir tualizada boa parte dos custos com operação e infraestrutura são reduzidos graças à divisão de recursos que estas tecnologias propiciam Por estes motivos você conheceu também os principais sistemas opera cionais disponíveis no mercado atual para cada aplicação distinta Conheceu também as diferenças entre os sistemas para dispositivos móveis com mais uso na atualidade e as operações suportadas em cada sistema operacional Aproveite para definir seus próprios objetivos quanto ao uso de implan tação de sistemas operacionais e escolha um para aprofundar seus conheci mentos Afinal o meio tecnológico precisa cada vez mais de especialidades nos profissionais Defina a sua Conclusão Fundamentos e Gestão de Sistemas Operacionais 170 No decorrer desta disciplina você pôde constatar o quanto os sistemas operacionais estão envolvidos no dia a dia do mundo globalizado Seja em computadores pessoais ou em grandes servidores bem como em pequenos dispositivos sempre há um sistema operacional para gerenciálos Pudemos observar que os dispositivos estão cada vez mais inteligentes e conhecer siste mas operacionais para relógios aparelhos celulares e tablets Estudamos ainda os sistemas operacionais específicos desenvolvidos e destinados para aplicações de automatização de processos com a utilização inclusive da antiga forma de processamento monotarefa além de aprender mos sobre os sistemas de mercado conhecidos como multitarefa que pos suem diversas versões Desta forma aprofundamos o conhecimento sobre o papel do sistema operacional bem como o seu funcionamento e pudemos compreender tam bém desde o momento em que é preciso decidir sobre o sistema operacional a ser utilizado bem como quais são os sistemas de arquivo disponíveis para cada sistema operacional passando ainda pela sua instalação gerenciamento e operação Na disciplina você aprendeu mais sobre o funcionamento e a ges tão de processos dentro do sistema operacional e a sua relação com a memória e os procedimentos de entrada e saída Além disso foi possível ainda conhecer e exemplificar as formas de con trole de acesso e gerenciamento de usuários permissões e grupos dentro de um sistema operacional Apresentamos ainda as principais causas e soluções para as falhas relacionadas com a segurança e o desempenho de sistemas operacionais Por fim estudamos sobre as aplicabilidades de cada um dos principais sistemas operacionais do mercado bem como as ferramentas de gerenciamento e as técnicas avançadas de operação como a virtualização e o acesso remoto Conforme vimos a área de sistemas operacionais embora extensa continua em constante aprimoramento Sendo assim o aperfeiçoamento em técnicas fer ramentas e em sistemas operacionais são essenciais para uma carreira promissora Referências Fundamentos e Gestão de Sistemas Operacionais 172 ADRENALINE Comparativo de processadores a batalha AMD vs Intel no CPU Chart Adrenaline Disponível em httpadrenalineuolcom br2015092837338comparativodeprocessadoresabatalhaamdvsintel nocpuchartadrenaline Acesso em 24 jun 2016 Alterar permissão Blog Hospedando Sites Disponível em httpblog hos pedandositescombrwpcontentuploads201204logo36gif Acesso em 29 dez 2015 APACHEORG Apache JMeter Disponível em httpjmeterapacheorg Acesso em 17 jan 2016 APACHEORG Apache Tomcat Disponível em httptomcatapache org Acesso em 17 jan 2016 CANALTECH Como funciona o HyperThreading httpcanaltechcombr dicaprodutosComofuncionaoHyperThreading Acesso em 12 jan 2016 CERTbr Cartilha de Segurança para Internet Disponível em httpcarti lhacertbrlivro Acesso em 24 jan 2016 COELHO Flavia Estélia Silva ARAÚJO Luiz Geraldo Segadas de Araújo BEZERRA Edson Kowask Gestão da segurança da informação NBR 27001 e NBR 27002 Rio de Janeiro RNPESR 2014 COMO executar uma instalação limpa do Windows MICROSOFT Dispo nível em httpwindowsmicrosoftcomptBRwindows8cleaninstall Acesso em 27 jan 2016 DEITEL Harvey M DEITEL Paul J CHOFFNES David R Sistemas operacionais Pearson Prentice Hall 2005 FERRARI S R Sambando com Linux Alta books 2009MAZIERO Carlos Alberto Sistemas Operacionais Conceitos e Mecanismos UTFPR 2013 GUIA de Instalação de Debian GNULinux DEBIAN Disponível em httpswwwdebianorgreleaseswheezyi386installpdfpt Acesso em 28 nov 2015 Interface de comunicação do disco rígido Archmemory Disponível em httpwwwarchmemorycomcmimagesImageinputidjpg Acesso em 29 dez 2015 173 Referências KUROSE James F Rede de Computadores e a Internet uma nova aborda gem Sao Paulo Addison Wesley 2003 LICENÇAS GNULinux Disponível em httpwwwgnuorglicenses licensesptbrhtml Acesso em 27 jan 2016 MENUETOS Disponível em httpwwwmenuetosnet Acessoem 25 jan 2016 MICROSOFTAbout processes and ThreadsDisponível em httpsmsdn microsoftcomptbrlibrarywindowsdesktopms68191728vvs8529 aspx Acesso em 09122015 MONTEIRO Claudio de Castro Sistemas Operacionais Curitiba Fael 2013 MORIMOTO Carlos Linux Gerenciamento de usuários grupos e permis sões 2008 Disponível em httpwwwhardwarecombrtutoriaisusuarios grupospermissoes Acesso 28 dez 2015 MOROZ Maiko Rossano Critérios para adoção e seleção de sistemas ope racionais embarcados 2011 75 f Dissertação Programa de Pós Graduação em Eng Elétrica e Informática Industrial Universidade Tecnológica Federal do Paraná Curitiba 2011 NEMETH Evi HEIN Trent R SNYDER Garth Manual completo do Linux guia do administrador 2004 NETMARKETSHARE Disponível em httpnetmarketsharecom Acesso em 18 jan 2016 OGLETREE Terry W Dominando Microsoft Windows XP 1 ed Pearson 2002 PORQUÊ o mascote do Linux é um pinguim Viva o Linux Disponível em httpswwwvivaolinuxcombrartigoPorqueamascotedoLinuxeum pinguim Acesso em 28 jan 2016 PROGUE David Mac OS X Snow Leopard O Manual que Faltava Dige rati Books 2010 RUDOLPH S et al Instalando Debian GNULinux 30 para Intel x86 versão 3024 Dezembro 2002 Disponível em httpwwwbrdebianorg releasesstablei386installpttxt Acesso em28 dez 2015 SÊMOLA Marcos et al Gestão da segurança da informação Elsevier Brasil 2003 SILBERSCHATZ Abraham GALVIN Peter Baer GAGNE Greg Funda mentos de Sistemas Operacionais7ª Ed Editora McGraw 2008 SILBERSCHATZ Abraham Sistemas operacionais com Java Elsevier Bra sil 2008 SILBERSCHATZ Abraham GALVIN Peter Baer Sistemas Operacionais com Java7ª Ed Editora Campus 2008 SILVA Alexandre Tadeu Rossini da etal Fundamentos de informática Curitiba Fael 2013 STALLINGS William Arquitetura e Organização de Computadores projeto para o desempenho 5 ed São Paulo Prentice Hall 2002 TANENBAUM Andrew S Redes de computadores São Paulo Pearson Prentice Hall 2011 TANENBAUM Andrew S VAN STEEN Maarten Sistemas Distribuídos princípios e paradigmas 2 ed Pearson Prentice Hall 2007 TANENBAUM Andrew S Sistemas Operacionais Modernos 3 ed Pearson Prentice Hall 2009 Técnica de DMA Imgur Disponível em httpiimgurcom8JLWR2p png Acesso em 29 dez 2015 TOSCANI S OLIVEIRA R S CARISSIMI A Sistemas operacionais Bookman Companhia 2010 VERAS Manoel Virtualização Componente Central do Datacenter Bras port 2011 Viva o Linux Disponível em wwwvivaolinuxcombr Acesso em 29 dez 2015 Este livro irá apresentar você aos conceitos básicos de sistema operacional baseado em uma grande referência bibliográfica da área e das atualidades de sistema operacional para os novos equipamentos utilizados atualmente Você vai perceber que o tema sistemas operacionais é muito amplo complexo e extremamente interessante Antes quando falávamos em sistemas operacionais pensávamos exclusivamente em computadores inicialmente eram os computadores de grande porte conhe cidos como mainframes e logo depois os computadores pessoais que evoluíram para os notebooks netbooks e Tablets Hoje em dia quando falamos em siste mas operacionais falamos no software que gerencia todos esses equipamen tos desde o computador de grande porte até o Smart relógio que você usa A estrutura básica de sistemas operacionais mantevese a mesma por muitos anos mas com o advento de novos dispositivos a cada dia cresce a necessidade da adaptação dessas estruturas para atender da melhor forma possível Por isso a disciplina de sistemas operacionais não vai se limitar aos computado res mas sim aos demais dispositivos que existem no mercado hoje Pensando nisto o objetivo deste livro é mostrar para você como funciona o sistema opera cional suas principais características seus recursos e sua funcionalidade ISBN 9788560531547 9 788560 531547