Resumo Sarmento

25
FUNDAÇÃO VISCONDE DE CAIRU CURSO ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ADENILTON FERREIRA FLAVIA COSTA IVAN DE JESUS JULY CUMMING LEVI LUCIO RESUMO DO CAPITULO 1 DO LIVRO “SISTEMAS OPERACIONAIS MODERNOS”.

Transcript of Resumo Sarmento

FUNDAO VISCONDE DE CAIRU

CURSO ANLISE E DESENVOLVIMENTO DE SISTEMAS

ADENILTON FERREIRAFLAVIA COSTAIVAN DE JESUS

JULY CUMMING

LEVI LUCIO

RESUMO DO CAPITULO 1 DO LIVRO SISTEMAS OPERACIONAIS MODERNOS.SALVADOR2014ADENILTON FERREIRA

FLAVIA COSTAIVAN DE JEUSJULY CUMMING

LEVI LUCIOResumo do capitulo 1 do livro Sistemas Operacionais Modernos ano de 2014, apresentado no curso de graduao tecnolgica na Fundao Visconde de Cairu, como nota parcial da matria Sistema Operacionais do Curso Tecnolgico em Anlise e Desenvolvimento de Sistemas.

rea da Tecnologia de Informao.

SALVADOR2014Captulo 1 Introduo

Um sistema computacional moderno consiste em um ou mais processadores, memria principal, discos, impressoras, interface de rede, dispositivo de entrada e sada, mouse, monitor, teclado. Os computadores tem um dispositivo de software denominado Sistema Operacional, que fornece aos programas do usurio um modelo de computador melhor, mais simples e limpo. O programa com o qual os usurios interagem chamados de Shell (Interpretador de Comando) quando for para textos, e GUI (Interface Grfica do Usurio) quando usa cones, quando usar cones e so os mais inferiores dos softwares de modo usurio.

O Sistema Operacional opera em modo ncleo, tambm chamado de modo supervisor, nesse modo ele tem acesso a todos os hardwares e pode executar qualquer instruo que a maquina seja capaz de executar. O resto dos softwares opera em modo usurio, no qual apenas um subconjunto de instrues da maquina est disponvel.

1.1 O que um sistema operacional?

difcil definir o que um sistema operacional alm de dizer que software que executa em modo ncleo e mesmo isso nem sempre verdade. Parte do problema ocorre porque os sistemas operacionais realizam basicamente duas funes no relacionadas: fornecer aos programadores de aplicativos um conjunto de recursos mais claros em vez de recursos confusos de hardware. Dependendo do tipo de usurio, ele vai lidar mais com uma funo ou com outra.

1.1.1 O sistema operacional como uma mquina estendida

A arquitetura (conjunto de instrues, organizao de memria, E/S e estrutura de barramento) da maioria dos computadores em nvel de linguagem de mquina primitiva e de difcil programao, especialmente a entrada/sada.

Os comandos mais bsicos so read e write; cada um deles requer 13 parmetros agrupados em 9 bytes. Esses parmetros especificam itens como o endereo do bloco de dados a ser lido, o nmero de setores por trilha, o modo de gravao usado no meio fsico. Quando uma operao completada, o chip controlador retorna 23 campos de status e de erros agrupados em 7 bytes. Como se isso no bastasse, o programador da unidade de discos flexveis ainda deve saber se o motor est ligado ou no. Se estiver desligado, ele dever ser ligado (com um longo atraso de inicializao) antes que os dados possam ser lidos ou escritos. O motor no pode permanecer ligado por muito tempo, seno o disco flexvel poder sofrer desgaste. O programador , ento, forado a equilibrar dois fatores: longos atrasos de inicializao versus desgastes do disco flexvel (e a perda dos dados nele gravados).

Abstrao o elemento-chave para gerenciar complexidade. Boas abstraes transformam uma tarefa quase impossvel em duas manejveis. A primeira delas definir e implementar as abstraes. A segunda usar essas abstraes para resolver o problema mo. Uma abstrao que quase todo usurio de computao entende o arquivo. Ele um fragmento de informao til, como uma foto digital, uma mensagem de email salva ou uma pgina da Web. Lidar com fotos, e-mails e pginas da Web mais fcil do que manipular detalhes de tarefa do sistema operacional criar boas atraes e, em seguida, implementar e gerenciar os objetos abstratos criados.

1.1.2 O sistema operacional como um gerenciador de recursos

O conceito de um sistema operacional como provedor de uma interface conveniente a seus usurios uma viso Top-Down (abstrao do todo para as partes). Em uma viso alternativa, Bottom-Up (abstrao das partes para o todo), o sistema operacional gerencia todas as partes de um sistema complexo. Computadores modernos so constitudos de processadores, memrias, temporizadores, discos, dispositivos apontadores tipo mouse, interfaces de rede, impressoras e uma ampla variedade de outros dispositivos. Segundo essa viso, o trabalho do sistema operacional fornecer uma alocao ordenada e controlada de processadores, memrias e dispositivos de E/S entre vrios programas que competem por eles. Sistemas operacionais modernos permitem que mltiplos programas sejam executados ao mesmo tempo.

Quando um computador (ou uma rede) tem mltiplos usurios, a necessidade de gerenciar e proteger a memria, dispositivos de E/S e outros recursos muito maior, j que, de outra maneira, os usurios poderiam interferir uns nos outros. Alm disso, os usurios muitas vezes precisam compartilhar no somente hardware, mas tambm informao (arquivos, bancos de dados etc.). Em resumo, essa viso do sistema operacional mostra que sua tarefa principal manter o controle sobre quem est usando qual recurso, garantindo suas requisies de recursos, controlando as contas e mediando conflitos de requisies entre diferentes programas e usurios.

O gerenciamento de recursos realiza o compartilhamento (ou multiplexao) desses recursos de duas maneiras diferentes: no tempo e no espao. Quando um recurso compartilhado (multiplexado) no tempo, diferentes programas ou usurios aguardam sua vez de us-lo.

Outro tipo de compartilhamento o de espao. Em lugar de consumidores esperando sua vez, cada um ocupa uma parte do recurso. Por exemplo, a memria principal normalmente dividida entre vrios programas em execuo. Assim, cada um pode residir ao mesmo tempo na memria (por exemplo, a fim de ocupar a CPU temporariamente). Alocar espao em disco e manter o controle sobre quem est usando quais parcelas do disco uma tpica tarefa de gerenciamento de recursos do sistema operacional.1.2 Histria do sistema operacional.O sistema operacional vem de uma grande evoluo, passando por varias verses de atualizaes e inovaes sendo bastante ligada a arquitetura de computadores sobre a qual eles so executados. O primeiro computador digital foi criado pelo matemtico ingls Charles Babbage(1792-1871), a maior parte da vida de Babbage foi na construo de uma maquina analitica ,porm essa criano no possuia sistema operacional,com sua inteligncia ele percebeu que sua criao precisaria de um softaware,para tanto, teve que contratar uma moa chamada de Ada Lovelace,filha do ingls famoso Lord Byron e essa jovem foi a primeira programadora do mundo, assim a liguagem de programao criada Ada@ foi denominada em sua homenagem.1.2.1 A primeira gerao(1945-1955) vlvulas.

Depois de varias tentativas de Babbage muitas sem sucessos para a criao de computadores digitais at a Segunda Guerra Mundial, estimulou sucesses de atividades com isso o professor Jonh Atanasoff e seu aluno Clifford Berry conseguiram construir o primeiro computador digital em funcionamento na faculdade no Estado de Iowa,eles utilizaram 300 vlvulas. Com essa primeira construo ocorreram varias outras criaes,no mesmo ano da primeira criao houve o Z3 de rels em Berlim,em 1944 o colossus na Inglaterra,o Mark e o Eniac na Pensilvnia. Algumas dessas criaes eram binrias,outras com vlvulas,outras eram programveis,porm, todas essas mquinas eram bem primitivos e levavam segundos para efetuar clculos bem simples.No mesmo periodo que existiam pessoas que criaram as mquinas tinha pessoas para programar,operar e realizar as manutenes da mquinas.Sendo que toda programao feita era em cdigo absoluto das mquinas ou muitas vezes eram conectados plugs em paineis para conseguir visualizar as funes bsicas da mquina,nessa poca ainda no existia a linguagem de programao nem o sistema operacional.Os programadores trabalhavam da seguinte maneira, eles reservava antecipadamente tempo para as mquinas em planilha se dirigiam para a sala da mquina inseria seu papel de programao no computador e ficava esperando algumas horas para que nenhuma vlvula queimasse e interrompesse o servio,todo esse servio era minucioso.Com o tempo essa programao foi sendo aprimorada at que no ano de 1950 foi criada a perfuradora de cartes,onde colocava os programas nos cartes e era possivel ler esses cartes.1.2.2 Segunda gerao(1955-1965) transistores e sistemas em lote(batch).Na dcada de 1950 houve a introduo do transistor se tornou o responsvel pela amplificao de sinal, alm de servir como um controlador que interrompe ou libera a passagem de corrente eltrica, com isso houve a confiabilidade em ser fabricados e comercializados com a expectativa de funcionar por tempo suficiente para execuo de alguns trabalhos, portanto, surgiu a separao de projetista, fabricantes, programadores e tcnicos da manuteno cada um exercendo sua profisso.Foi assim que surgiu o computador de grande porte o (mainframes), ficavam em salas isoladas com ar condicionado apenas sendo executado por profissionais, sendo um servio caro que s empresas de grandes portes poderiam pagar para obter o servio desses computadores. As tarefas ou programaes solicitadas por essas empresas eram feitas pelos programadores primeiro era colocado no papel depois perfurava nos cartes que eram colocados na sala dos computadores por profissional e apenas aguardava do lado de fora o resultado na impressora de sada. Devido ao alto custo do equipamento e o desperdcio no tempo do manuseio das maquinas foram pensados maneiras para aprimorar isso, chegando ao sistema em lote (batch). A ideia era gravar varias tarefas em uma fita magntica utilizando um computador mais barato como o da empresa IBM 1401, que sua funo era para ler cartes, fitas magnticas e imprimir as sadas, porm, no era apropriado para efetuar clculos, cada maquina tinha sua funo apropriada. Aps adquiri esse computador da IBM foi observado uma reduo no manuseio das maquinas de grande porte e a leitura dos cartes era gravada em fitas magnticas, porm essa maquina 1401 no era conectada aos computadores de grande porte. Os grandes computadores da segunda gerao foram usados em sua maioria para clculos especficos de modo geral e sua linguagem eram assembly.

1.2.3 A terceira gerao (1965-1980) CIs e multiprogramao.No ano de 1960 os fabricantes comearam a fabricar dois tipos de computadores 7094 um cientifico de grande escala orientados a palavras usadas para clculos numricos na cincia e na engenharia e o outro computador 1401 comercial voltado para caracteres, como banco e companhia de seguros para a ordenao e impresso em fitas. Para os fabricantes fabricar esses computadores demandava muito custo, alm disso, os clientes sempre desejavam criao nova e com maior rapidez, portanto, a IBM criou seu mais novo produto system/360. Essa mais nova criao foi uma serie de maquinas em uma s voltado tanto para a clculos e para leitura de cartes, software compatvel, para isso havia diferena de valores por causa da quantidade de memria, velocidade do processador, nmeros de E/S permitidos dentre outros. Com tanta criao a empresa IBM ao passar dos anos comeou a criar computadores com tecnologias mais modernas.O computador 360 da IBM foi o primeiro a usar circuitos integrados (CIs) em pequena escala, proporcionando melhor custo-benefcio em comparao das maquinas com transistores individuais, o 360 serve para gerenciar imensos bancos de dados surgindo assim o sistema operacional OS/ 360.

Para a resoluo de vrios problemas relacionada aos sistemas operacionais foi criada a tcnica da multiprogramao, essa tcnica foi criada para evitar a ociosidade de alguns componentes do computador quando os servios estavam sendo executados. Essa nova tcnica chegou para poder dividir a memoria em varias partes, com a tarefa diferente para cada partio, quando uma esperava que a operao E/S se completasse a outra poderia j usar a CPU. Outra importante funo do sistema operacional era transferir uma tarefa para outra, quando o servio fosse completado poderia executar uma nova tarefa essa tcnica conhecida como Spooling (Simultaneous Peripheral Operation Online) usada para sistema operacional da terceira gerao.

Com o sistema operacional da terceira gerao o intervalo de tempo de submeter uma tarefa e obter uma sada era de muitas horas, assim, uma nica vrgula colocada em um lugar errado poderia causar um erro de compilao, e o programador gastaria metade do tempo para reparar. Para tanto veio o tempo compartilhado ou times harling vantagem da multiprogramao onde cada usurio se conectava por meio de um terminal on-line, o primeiro sistema do tempo compartilhado foi CTSS (Compatibile Time Sharing System) criado em MIT no 7094 modificado, Bell Labs e General Electric ( grandes fabricantes de computadores).O projetista MIT foi o criador desse sistema Multics (Servio De Computao E Informao Multiplexada) foi projetado para suportar centenas de usurios em uma nica maquina, tendo assim mais capacidade de E/S, ocorreu varias razes para a MULTICS no dominasse o mundo, uma delas era sua codificao em PL/I, esse compilador chegou com anos de atraso e quando chegou dificilmente funcionava. Na terceira gerao tambm houve a criao de minicomputadores, o cientista Ken Thompson da computao de Bell Labs que trabalhava no projeto MULTICS, achou um pequeno minicomputador que ningum usava mais e aproveitou para escrever uma verso despojada e monousurios do MULTICS. Esse trabalho desenvolveu-se e deu origem ao sistema operacional UNIX, que se tornou muito popular no mundo acadmico, em agencias governamentais e grandes empresas. Para tornar possvel escrever programas que pudesse ser executados em qualquer sistema UNIX , O IEEE desenvolveu um padro para o UNIX denominado POSIX(portable operating system), interface porttil para sistemas operacionais, ao qual a maioria das verses UNIX agora d suporte. Sendo assim, lanou-se um mini clone do UNIX que foi o MINIX, com o objetivo educacional, bastante similar ao UNIX e com suporte ao POSIX. Com isso ocorreu a evoluo para o MINIX 3 com capacidade de deletar e substituir mdulos defeituosos ou danificados.Com uma vontade de criar uma verso gratuita do MINIX, o estudante finlands Linus Torvalds criou o sistema operacional LINUX, porm, possui muitas partes do MINIX e do UNIX.

1.2.4 Quarta gerao (1980 Presente) Computadores Pessoais.Os computadores pessoais, conhecido como microcomputadores, surgiram com o surgimento de circuitos integrados em larga escala (LSI), que so chips contendo milhares de transistores em um centmetro quadrado de silcio.

A Intel criou o primeiro microcomputador com a CPU de 8 bits, no entanto a IBM nos anos de 1980 projetou o IBM/PC e buscou um software para ser executado nele, foi assim que entrou em contato com Bill Gates para licenciar seu interpretador BASIC, sendo assim Gates conhecia uma empresa que criava sistema operacional e indicou a IBM o sistema operacional DOS (Disk Operating System) sistema operacional de disco e ficou conhecida como Bill Gates era da Microsoft MS/DOS. Foi tambm criada uma interface grfica voltada para os usurios como janelas, cones, menus, assim chamada de GUI.Steve Jobs, com sua primeira criao usando interface GUI inventou LISA, porm, no foi bem sucedido e com sua segunda tentativa criou o APPLE MACINTOSH, que foi um enorme sucesso no por causa do custo menor que o LISA, porm , por ser mais amigvel para o entendimento dos usurios. Aps isso comeou a surgir as verses do Windows separado do MS-DOS da IBM, o primeiro foi criado pela Microsoft foi o Windows 95, um pouco modificado criou o 98 que ainda tinha uma grande quantidade de linguagem assembly de 16 bits da Intel, depois veio o Windows NT compatvel com o 95,porm possua 32 bits, essa verso foi conhecida como Windows 2000 no ano de 1999, contudo a Microsoft evolui a verso 98 para Windows Me e uma verso mais atualizada do 2000 foi chamado de Windows XP teve uma durao maior de 6 anos substituindo todas as verses anteriores. Em 2007 lanou o Windows Vista.1.4 O zoolgico de sistemas operacionais.

1.4.1 Sistemas operacionais de computadores de grande porte

Os computadores de grande porte distinguem-se dos computadores pessoais em termos de capacidade de E/S e esto ressurgindo como sofisticados servidores para sites de comrcio eletrnico em larga escala e, ainda, como servidores para transaes entre empresas. Esses sistemas operacionais para computadores de grande porte, normalmente oferece trs tipos de servios: em lote (batch) que processa tarefas de rotinha sem a presena interativa do usurio, processamento de transaes que administram grandes quantidades de pequenas requisies e tempo compartilhado que permite mltiplos usurios remotos executem suas tarefas simultaneamente no computador, como na realizao de consultas a um grande banco de dados. Os sistemas operacionais de computadores de grande porte esto sendo gradualmente substitudos por variantes do UNIX, como o Linux.1.4.2 Sistemas operacionais de servidores

Estes sistemas so executados em servidores, que so computadores pessoais muito grandes, em estaes de trabalho ou ate mesmo em computadores de grande porte. Eles servem mltiplos usurios de uma vez em uma rede e permitem-lhes compartilhar recursos hardwares e de software. Servidores podem fornecer servios de impresso, de arquivo ou de web. Provedores de acesso internet utilizam varias maquinas servidoras para dar suporte a seus clientes e sites da web usam servidores para armazenar paginas e tratar requisies que chegam.

1.4.3 Sistemas operacionais de multiprocessadores

Multicomputadores ou multiprocessadores precisam de sistemas operacionais especiais, mas muitos deles so variaes dos sistemas operacionais de servidores, com aspectos especiais de comunicao, conectividade e compatibilidade. Os chips multincleo para computadores pessoais so multiprocessadores de pequena escala. Muitos sistemas populares, inclusive Windows e Linux, so executados com multiprocessadores.

1.4.4 Sistemas operacionais de computadores pessoais

Os computadores modernos do suporte a multiprogramao. Seus trabalhos oferece uma interface para um nico usurio. So amplamente para processar um texto, planilhas e acesso internet.

1.4.5 Sistemas operacionais de computadores portteis

Um computador porttil um pequeno computador que cabe no bolso de uma camisa e executa um numero pequeno de funes, como agenda de endereos e bloco de anotaes.

Um exemplo disso so os celulares que se fundiram, diferindo principalmente em tamanho, peso e interface com o usurio. Quase todos eles so baseados em CPUs de 32 bits com modo protegido e executam um sistema operacional sofisticado. Uma diferena importante entre portteis e PCs que os primeiros no tm discos rgidos multigigabyte, o que faz muita diferena. Dois dos sistemas operacionais para portteis mais populares so Symbiam OS e Palm OS.

1.4.6 Sistemas operacionais embarcados

Sistemas embarcados so executados em computadores que controlam dispositivos que geralmente no so considerados computadores e que no aceitam softwares instalados por usurios.

1.4.7 Sistemas operacionais de ns sensores (Sensor Node)

Ns de sensores so computadores minsculos que se comunicam entre si e com estao-base usando comunicao sem fio. Essas redes de sensores so utilizadas para proteger os permetros de prdios, guardar fronteiras nacionais, detectar incndios em florestas, medir temperatura e nveis de precipitao para previso do tempo, colher informaes sobre movimentos dos inimigos em campos de batalha. Eles tm energia limitada e devem funcionar por longos perodos de tempo, sozinhos ao ar livre, frequentemente em condies ambientais severas.

Cada n sensor um verdadeiro computador, com CPU, RAM, ROM e um ou mais sensores ambientais. Executa um sistema operacional prprio, normalmente dirigido por eventos, reagindo a eventos externos ou obtendo medidas periodicamente com base em um relgio interno. Os ns tm RAM pequena e a durao da bateria uma questo importante, por isso todos os programas so carregados antecipadamente.

1.4.8 Sistema operacional de tempo real

Computadores de tempo coletam dados sobre o processo de produo e usa-los para controlar as mquinas em fabricas. As aes precisam necessariamente ocorrer em determinados instantes (ou em um determinado intervalo de tempo), tem-se ento um sistema de tempo real crtico que so encontrados em processos industriais, avinica, exrcito e reas de aplicao semelhantes.

O sistema de tempo real no critico, que tambm um sistema de tempo real, descumpre o prazo de determinado e so utilizados em sistemas de udio digital ou multimdia, telefone digitais pertencem a essa categoria. O cumprimento de prazo crucial em sistemas de tempo real, os sistemas embarcados e de tempo real executam apenas softwares colocados pelos projetistas dos sistemas, os usurios no podem acrescentar seus prprios softwares, o que facilita a proteo.

1.4.9 Sistemas operacionais de cartes inteligentes (Smart Cards)

So dispositivos do tamanho do carto de crdito que contem um chip de CPU. Alguns cartes inteligentes so orientados a Java. Significa que a ROM no carto inteligente contm um interpretador para a mquina virtual Java (JVM). Alguns desses cartes podem tratar mltiplas applets Java ao mesmo tempo.

1.5 Conceitos sobre Sistemas Operacionais.

A maioria dos sistemas operacionais fornece certos conceitos e abstraes bsicos, como processos, espaos de endereamento e arquivos, que so fundamentais para entend-los.

1.5.1 Processos.

um programa em execuo, associado a cada processo est seu espao de endereamento, uma lista de posies de memria que esse processo pode ler e escrever. O espao de endereamento contm o programa executvel, os dados do programa e sua pilha. Tambm associado a cada processo est um conjunto de recursos, normalmente incluindo registradores (que incluem o contador de programa e o ponteiro para a pilha), uma lista dos arquivos abertos, alarmes pendentes, listas de processos relacionados e todas as demais informaes necessrias para executar um programa.

Um processo fundamentalmente um continer que armazena todas as informaes necessrias para executar um programa. O modo mais fcil de entender um processo pensar em sistemas de multiprogramao. Um processo pode ter, ao mesmo tempo, vrios arquivos abertos para leitura. Existe um ponteiro, associado a cada um desses arquivos, que indica a posio atual (o nmero do prximo byte ou registro a ser lido). Quando um processo suspenso temporariamente, todos esses ponteiros devem ser salvos de forma que uma chamada read, executada aps o reincio desse processo, possa ler os dados corretamente.Tabelas de processo: as informaes relativas a um processo so armazenadas na tabela de processos, que uma tabela dos sistemas operacionais, um arranjo (ou uma lista encadeada) de estruturas, uma para cada processo existente. Um processo (suspenso) constitudo de seu espao de endereamento, normalmente chamado de imagem do ncleo e de sua entrada na tabela de processos, a qual armazena o contedo de seus registradores, entre outros itens necessrios para reiniciar o processo mais tarde.As principais chamadas de sistemas de gerenciamento de processos so aquelas que lidam com a criao e o trmino de processos. Chamadas de sistemas so necessrias para criar, remover, ler e escrever arquivos. Um exemplo o interpretador de comandos ou shell, o usurio digita um comando pedindo que um programa seja compilado, o shell cria um novo processo, que executar o compilador. Quando esse processo tiver terminado a compilao ele executa uma chamada de sistema para se autofinalizar.

1.5.2 Espaos de endereamento.

Normalmente cada processo tem um conjunto de endereos que pode utilizar geralmente indo de 0 at alguma quantidade mxima. No caso mais simples, a quantidade mxima de espao de endereamento que um processo tem menor que a memria principal. Assim, um processo pode preencher todo seu espao de endereamento e haver espao suficiente na memria para armazen-lo completamente. Se um processo tiver maior espao de endereamento que a memria principal do computador e o processo quiser utiliz-lo completamente basta usar a tcnica chamada memria virtual, o sistema operacional mantm parte do espao de endereamento na memria principal e parte no disco, trocando os pedaos entre eles conforme a necessidade.

1.5.3 Arquivos

Antes que um arquivo possa ser lido, ele deve ser localizado no disco, aberto e depois, ser fechado. As chamadas de sistemas so fornecidas para fazer essas tarefas. Para ter um local para guardar os arquivos, a maioria dos sistemas operacionais fornece o conceito de diretrio. So necessrias chamadas de sistema para criar e remover diretrios, para colocar um arquivo em um diretrio e remov-lo de l.

Hierarquias de processos e de arquivos so organizadas como rvores. Hierarquias de processo no so muito profundas (no comum mais de trs nveis), j hierarquia de arquivos em geral so mais profundas, quatro a cinco nveis ou mais de profundidade. Hierarquia de processos tem pouco tempo de vida, no mximo alguns minutos, j de diretrios podem existir por anos. Cada arquivo dentro da hierarquia de diretrios pode ser especificado fornecendo-se o caminho (Path Name) a partir do topo da hierarquia de diretrios, o diretrio raiz. Esses caminhos formam uma lista de diretrios que deve ser percorrida a partir do diretrio raiz para chegar at o arquivo, com barras(\) separando os componentes.

Os arquivos especiais permitem que dispositivos de E/S paream-se com arquivos, assim, eles podem ser lidos e escritos com a mesma chamada de sistemas usadas para ler e escrever arquivos existem dois tipos arquivos especiais de bloco e arquivos especiais de caracteres. Os arquivos especiais de bloco so usados para modelar dispositivos que formam uma coleo de blocos aleatoriamente endereveis, como discos. Os arquivos especiais de caracteres so usados para modelar impressoras, modens e outros dispositivos que recebem ou enviam caracteres serialmente. Um arquivo que relaciona processos e arquivos chamado de Pipe um tipo de pseudoarquivo que pode ser usado para conectar dois processos.

1.5.4 Entrada e Sada

Existem vrios tipos de dispositivos de entrada e sada, como teclados, monitores e impressoras, cabe ao sistema operacional gerenciar esses dispositivos.

1.5.5 Segurana.

Cabe ao sistema operacional gerenciar o sistema de segurana para que os arquivos, por exemplo, sejam acessveis apenas por usurios autorizados. Um exemplo, arquivos em UNIX so protegidos atribuindo-se a cada um deles um cdigo de proteo de 9 bits, cada campo tem um bit de permisso de leitura, um bit de permisso de escrita e outro bit de permisso de execuo, o proprietrio pode ler, escrever, ou executar o arquivo, que outros membros do grupo podem ler ou executar (mas no escrever) o arquivo, e qualquer um pode executar (mas no ler ou escrever o arquivo.

1.5.6 O interpretador de comandos (Shell)

Embora no seja parte do sistema operacional, o Shell faz uso intensivo de muitos aspectos do sistema operacional. Ele tambm a interface entre o usurio frente de seu terminal e o sistema operacional. Existem muitos Shell, dentre eles o sh, o csh, o ksh e o bash. Quando um usurio se conecta, um shell iniciado este tem o terminal como entrada-padro e sada padro, ele inicia emitindo um caractere de prompt (prontido) por exemplo o cifro, que diz ao usurio que o shell est esperando receber um comando.

1.7 Estruturas dos sistemas operacionaisAgora que tivemos uma viso externa de um sistema operacional e da interface dele com o programador vamos examinar os cincos principais do sistema operacional.1.7.1Sistema monolticoE de longe a mais comum o sistema operacional inteiro e executado como um nico programa no modo ncleo e escrito como uma coleo de rotinas, ligadas a um nico grande programa binrio executvel. livre para chamar qualquer outra se esta oferecer alguma computao til de que a primeira necessite.

Para construir programa objeto real do sistema operacional usando-se abordagem, primeiro compila-se todas as rotinas individualmente ento se junta todos os arquivos objeto em um nico usando o ligador (Linker) do sistema.

No sistema monoltico possvel ter um mnimo de estrutura provido pelo sistema operacional requisitados colocando o s parmetro sem um local bem definido executando uma instruo que chaveia a maquina do modo usurio para o modo ncleo e transfere o controle para o sistema operacional. Cada chamada de sistema h uma rotina de servio que se encarrega dela nas utilitrias realizam tarefas necessrias para as varias rotinas de servios como buscar dados dos programas dos usurios o sistema operacional e carregado quando o computador e iniciado os sistemas do suporte como drives de E/S e sistemas de arquivos.1.7.2 Sistemas de camadas

a organizao do sistema operacional como uma hierarquia de camada construda sobre a camada inferior dessa maneira foi THE (Technische Hogeschool Eindhoven na Holanda i foi implementado por E.WDijkstra, 1968) como o electrologica x8 que tinha 32k de palavra de 27 bit, a camada 0 tratava da alocao do processador cada um deles podia ser programado sem a preocupao com o fato de mltiplos processos estarem executando um nico processador a camada 0 fornecia multiprogramao para a CPU a camada 1 era encarregada do gerenciamento de memria principal em um tambor magntico de 512k acima da camada 1 o processo no precisavam prestar ateno e se estavam na memria principal ou no tambor magntico trazidas para a memria principal.

A camada 2 era encarregada da comunicao entre cada processo de conciliao da operao.

A camada 3 encarregava-se de gerenciar os dispositivo de E/S e armazenava temporariamente os fluxos de informao que iam para esses dispositivos o que vinham deles podia lidar com os dispositivos abstratos de E/S mais amigveis em vez de dispositivos cheio de peculiaridade eles no tinham que se preocupar com gerenciamento de dados na memria conforme E/S o processo operador do sistema estava localizado na camada 5.

O conceito da camada estava presente no sistema MULTICS era descrito como uma serie de anis concntricos, sendo mais privilegiado que os externos. Os parmetros eram cuidadosamente verificados antes de permitir que a chamada continuasse.

1.7.3 Microncleo Com a abordagem dos sistemas de camadas os projetistas podem escolher onde traar a fronteira ncleo usurio. As camadas entram no ncleo, mas isso no e necessrio, pois apresentam um forte argumento possvel em modo no ncleo podendo derrubar o sistema instantaneamente.

Aproximado para o sistema industrial serio de dez erros por mil linhas isso quer dizer se tivermos um sistema monoltico de 5 milhes de linha tenhamos 50 mil erros.

Os sistemas operacionais so suficientemente sujeito a erros por isso os fabricantes inserem o boto de reiniciar que no o possuem em eletro domestico carros, etc. Apesar de conter grande quantidade de softwares.

Em particular quando h execuo de todos os drives de dispositivos e de cada sistema de arquivo como um processo de usurio separado um erro em um deles pode quebrar aquele componente, mas no pode quebrar o sistema inteiro seja alterado ou interrompido, mas no travara o computador o sistema monoltico em todo o ncleo uma unidade de udio defeituosa pode facilmente dar como referencia um endereo de memria invalido e parar o sistema instantaneamente. O minix 3 um sistema de cdigo aberto disponvel gratuitamente.

Fora do ncleo o sistema estruturado em trs camadas de processos todas executada em modo usurio a camada inferior contem os drives de dispositivos que constri uma estrutura que valores escrevem em quais portas de E/S e gera uma camada ao ncleo para realizar a escrita.

Acima dos drives esta outra camada no modo usurio que contem os servidores o interessante o servidor reencarnao cujo trabalho verificar se os outros servidores e drives esto funcionando corretamente e se detecta uma unidade defeituosa automaticamente e substituda sem nenhuma interveno do usurio.

Mas esse sistema tem muita restrio que limitam a potencia de cada processo os drives podem tocar apenas portas e/s autorizada, mas o acesso chamado ncleo tambm e controlado por processo assim coma a capacidade de enviar mensagens a outros processos.

A soma de todas essas restries que cada drives e servidor tem exatamente a potencia para fazer seu trabalho e nada mais do que limita os danos que poderia ser causado por danos defeituosos. A ideia ao ncleo mnimo colocar o mecanismo para fazer algo no ncleo e no a poltica.

Um algoritmo de escalonamento relativamente simples atribuir a uma propriedade a cada processo e, em seguida, fazer com que o ncleo execute o processo executvel de maior prioridade. O mecanismo no ncleo procurar o processo de maior prioridade e execut-lo.1.7.4 O modelo cliente-servidor

H variao da ideia do micro ncleo distinguir entre duas classes de processo os servidores que presta algum servio e os clientes que usa esse servio. A camada inferior A camada inferior o microncleo ma no e obrigatrio essa presena de processo cliente-servidora comunicao entre eles muitas vezes realizada por meio de trocas de mensagem.

Uma generalizao executar clientes e servidor em computadores diferentes conectados por uma rede local ou de grande rea eles no precisam saber se as mensagens so entregues localmente em suas prprias mquinas ou se no enviadas atravs de uma rede a servidores em uma maquina remota. O cliente servidor uma abstrao que pode ser usado para uma nica maquina ou para uma rede de maquinas.

Cada vez mais se v usurios em computadores pessoais, de fato grandes parte da web opera dessa forma.

1.7.5 Maquinas virtual As verses iniciais do sistema operacional os360 eram estreitamente em lote porem muitos usurios do IBM 360 j desejava compartilhamento de tempo. Dentro e fora da IBM, decidiram escrever sistemas de tempo compartilhando para IBM 360 que o oficial e depois foi lanado o TSS/360 muito mais tarde que se tornou o mais popular.

Ele foi finalmente abandonado depois que j ter consumido cerca de 50 milhes de dlares em seu desenvolvimento, mas um grupo do centro cientifica da IBM produziu outro sistema radicalmente diferente, que a IBM finalmente adotou chamado Z/VM agora amplamente usado nos computadores de grande porte atuais da IBM a serie z, que esto muito utilizados em grandes centros.VM/370Esse sistema originalmente denominado CP/CMS depois renomeado VM/370 de tempo compartilhado fornece multiprogramao o hardware oferece essncia do VM/370 a separao completa dessas duas funes.

Com o monitor de mquina virtual, executado diretamente sobre o hardware e programa a multiprogramao provendo assim no uma, mas varias maquinas virtuais para a prxima camada situada acima. Na verdade so copias exata do hardware inclusive com modos ncleo/usurio, E/S, interrupes e tudo que uma maquina real tm. Cada uma delas pode executar qualquer sistema operacional capaz de ser executado diretamente sobre o hardware.

OS/360 para processamento em lote de transao enquanto se executa em outro sistema operacional monousurio denominado CMS (sistema monitor convencional) dedicado usurios interativos em tempo compartilhado, o qual era popular entre os programadores. A partir da separao completa das funes de multiprogramao e da proviso de uma maquina estendida, podem-se ter partes muito mais simples, flexveis e fceis de serem mantidas.

A partir da separao completas das funes de multiprogramo e da proviso de uma maquina estendida, pode-se ter partes muitos mais simples, flexveis e fceis de serem mantidas.

Maquinas virtuais redescobertasEmbora a IBM tenha um produto de maquina virtual disponvel h quatro dcadas e algumas outras companhias, inclusive a Sun Micro Systems e a Hewlett-Packard, tinham acrescentado recentemente um suporte de maquina virtual a seus servidores empresariais de alto desempenho, a Ideia de virtualizao foi a grande medida ignorada na indstria da computao at pouco tempo atrs. Mas, nos ltimos anos, uma combinao de novas necessidades, novos softwares e novas tecnologias primeiro as necessidades elas percebem a virtualizaco como um modo de executar todas elas na mesma maquina sem que uma falhe em um servidor afete o resto.

A virtualizaco tambm popular na indstria de hospedagem de paginas de web, tambm usada por usurios finais que querem executar dois ou mais sistemas operacionais ao mesmo tempo, por exemplo, Windows e Linux, porque alguns de seus pacotes de aplicaes favoritos so executados em um dos sistemas e outros pacotes em outro sistema.

Como modificar a PSW ou fazer E/S essencial que o hardware crie um dispositivo para o monitor da maquina virtual, de modo que a instruo possa ser emulada em software em alguma CPU principalmente Pentium, e seus predecessores e seus clones.

Quando o sistema operacional hospede inicializado, faz o mesmo que no mesmo hardware, normalmente iniciando algum processo subordinado e, em seguida, uma interface grfica GUI.A mquina virtual JavaSo usadas, mas de maneira diferente na execuo de programa Java. Quando a Sun micro systems inventou a linguagem Java, inventou tambm uma mquina virtual denominada JVM (Java virtual machine) o compilador Java produz cdigo para JVM, que ento normalmente executado por um programa interpretador da JVM que pode ser lanado pela internet a qualquer computador que tenha um interpretador JVM. Se o compilador produzisse, cdigo binrio para a SPARC ou paro o Pentium, esses cdigos no seria to fcil assim levados de um lugar para outro.

O JVM uma arquitetura muito mais simples de interpretar os programas que chegam podem ser verificados, por segurana, e ento executados em um ambiente protegido, de modo que no possam roubar dados ou causar quaisquer danos.

1.7.6 ExoncleoEm vez de clonar a mquina real, como feito no caso das mquinas virtuais, melhor da a cada usurio um subconjunto de recursos. Assim uma mquina virtual pode obter os blocos 0 a 1.023 de disco, outra os blocos 1.024 a 2.047 e assim por diante.

No exoncleo sua tarefa alocar recursos s mquinas virtuais e ento verificar as tentativas de us-los para assegurar-se de que nenhuma mquina esteja tentando usar recurso de outra. Cada maquina virtual, em nvel de usurio pode executar seu prprio sistema operacional. Uma maquina virtual pensa que tem seu prprio disco. Com o exoncleo esse mapeamento deixa de ser necessrio.