Вы находитесь на странице: 1из 24

CST em Anlise e Desenvolvimento de Sistema

Um sistema de computao constitudo basicamente por hardware e software. O hardware composto por circuitos eletrnicos (processador, memria, porta de entrada/sada, etc.) e perifricos eletro ptico mecnicos (teclado, mouses, discos rgidos, unidades de disquete, CD ou DVD, dispositivos USB, etc.). Por sua vez, o software de aplicao representado por programas destinados ao usurio do sistema, que constituem a razo final de seu uso, como editores de texto, navegadores Internet ou jogos. Entre os aplicativos e o hardware reside a camada de software multifacetada e complexa, denominada genericamente de Sistema Operacional. Neste captulo veremos quais os objetivos bsicos do sistema operacional, quais desafios ele deve resolver e como ele estruturado para alcanar seus objetivos.

CST em Anlise e Desenvolvimento de Sistema

1.0 Conceituao e tipos de Sistemas Operacionais

Introduo
Interao entre hardware e software.

Caminho que descreve a comunicao entre as camadas do sistema operacional: Browser -> Interpretador -> Compilador -> S/O -> Assembler -> Microarquitetura -> Hardware Um sistema operacional consiste em: - Hardware - Programas de sistema - Programas de aplicaes

O que um sistema operacional


uma mquina estendida - Oculta os detalhes complicados que tm de ser executados. - Apresenta ao usurio uma mquina virtual, mais fcil de usar. um gerenciador de recursos - Cada programa tem um tempo com o recurso. - Cada programa tem um espao no recurso. Segundo Deitel, H. M.; Deitel, P. J.; Choffnes, D. R (2005), Sistema o Operacional um software que habilita as aplicaes a interagir com o hardware de um computador. Seu componente central o ncleo, tambm conhecido como kernel. Os sistemas operacionais esto presentes em
2

CST em Anlise e Desenvolvimento de Sistema telefones celulares, automveis, eletrodomsticos, computadores pessoais, alm dos computadores de grande porte ou mainframes. Segundo o site cola da web um sistema operacional : Um sistema operacional uma coleo de programas para gerenciar as funes do processador, o input, o output, o armazenamento e o controle dos dispositivos. O sistema operacional tem todos os comandos bsicos que os aplicativos vo usar, em vez de ter todas estas funes re-escritas para cada aplicativo.

1.1 Componentes do Sistema Operacional


Nos sistemas operacionais, os usurios requisitam ao computador que realize uma determinada tarefa e o sistema operacional gerencia o software e o hardware para chegar execuo do que foi solicitado. Assim, quando um usurio solicita a impresso de um documento, por exemplo, o sistema operacional age no encaminhamento do documento at a porta de impresso virtual onde est instalada uma impressora, o sistema operacional age no encaminhamento do documento at a porta de impresso virtual onde est instalada uma impressora, converte o arquivo para um formato que a impressora possa entender e o envia para impresso, monitorando o feedback do dispositivo para saber se o documento foi impresso ou se ocorreu algum problema como falta de papel, falta de tinta ou toner, papel encravado, etc. O software que contm os componentes centrais do sistema operacional chama-se ncleo ou Kernel, em ingls. Entre os componentes centrais do sistema operacional destacam-se: Escalonador de processos: determina o momento e o perodo de tempo em que um processo executado pelo processador; Gerenciador de memria: determina o momento e a forma como a memria ser cedida aos processos e o que fazer quando a memria principal estiver cheia; Gerenciador de E/S: atende s solicitaes de entrada e sada destinadas e provenientes dos dispositivos de hardware; Gerenciador de comunicao interprocessos (IPC): permite que os processos se comuniquem entre si; Gerenciador de sistema de arquivos: organiza as colees de dados gravados nos dispositivos de armazenamento e fornece uma referncia para acessar os dados nesse dispositivo.
3

CST em Anlise e Desenvolvimento de Sistema

Como um sistema operacional funciona


Componentes funcionais dos sistemas operacionais: Um sistema operacional executa muitas funes para que o computador funcione bem e eficientemente. De acordo com a figura 2 algumas dos componentes mais importantes so: Interpretador de Comandos: traduz comandos para instrues que o processador entende. Gerente dos Usurios: guarda as tarefas de um usurio separadas daquelas dos outros. Gerente das Tarefas: guarda as operaes de uma tarefa separadas daquelas dos outros. Gerente dos Recursos: gerencia o uso de recursos de hardware entre usurios e tarefas usando-os a qualquer ponto do tempo. Gerente de Arquivos: cria, deleta, enter, muda arquivos e gerencia acesso para arquivos. User Interface: gerencia acesso do usurio para o interpretador de comandos e o gerente de arquivos.

Figura 2 Arquitetura representando componentes do Sistema Operacional.


4

CST em Anlise e Desenvolvimento de Sistema

1.2 Evoluo dos Sistemas Operacionais


1940 Histria Surgem os primeiros computadores digitais eletrnicos. equipamentos, porm, no possuam um sistema operacional. Programas eram submetidos em linguagem de mquina. quando ocorre a introduo de perfurao de carto para armazenagem dos programas. Esses

Figura 3 Telex - Fita Perfurada (Paper tape). Antiga forma de armazenamento de dados, que consistia numa longa tira de papel, na qual eram perfurados buracos que assim armazenavam informaes. Foram usados largamente em boa parte do sculo XX para a comunicao em aparelhos de telex, e nas mquinas eltricas industriais CNC (Controle Numrico Computadorizado). Os dados so representados pela presena ou ausncia de um orifcio em
5

CST em Anlise e Desenvolvimento de Sistema determinado lugar. As fitas originalmente possuam cinco buracos em cada fila, mas outras mais adiante passaram a possuir 6, 7 e at 8 furos por fila. Uma fila de orifcios em sequncia era feita por uma espcie de roda dentada e os textos eram codificados de vrios modos. 1950 Histria Surge o primeiro sistema operacional, no inicio da dcada, desenvolvido pelos laboratrios de pesquisa da General Motors, para ser executado em seu computador IBM 701. O IBM 701 foi o primeiro equipamento da IBM para uso geral. O IBM 701 executava apenas um job de cada vez.

1960 Histria Deu-se inicio multiprogramao, quando projetistas desenvolveram sistemas operacionais que gerenciavam diversos jobs ao mesmo tempo.

Figura 4 Um sistema multiplataforma com trs jobs na memria. Fonte Tanenbaum, 1987. Em 1964 a IBM lanou a famlia System/360, que utilizava o sistema operacional OS/360 e tinha a versalidade de possuir escalabilidade, ou seja, podia oferecer maior capacidade medida que o usurio necessitava fazer crescer a srie. Com isso, a IBM permitiu que a arquitetura 360 pudesse evoluir para sries superiores e posteriores, como a srie 370, 390 e, mais recentemente, a zSeries, medida que eram lanadas, possibilitando o reaproveitamento, de maneira facilitada, dos cdigos escritos nas sries anteriores.

CST em Anlise e Desenvolvimento de Sistema Os usurios interagem com o computador por meio de terminais burros, ligados on-line diretamente ao computador. Passou-se a focar a melhoria de produtividade e reduo de recursos humanos. Foram desenvolvidos sistemas de tempo compartilhado (Time Sharing System) e sistemas de tempo real. Vrios sistemas operacionais de tempo compartilhado foram desenvolvidos nessa poca, tais como o CTSS (Compatible Time Sharing System), desenvolvido pelo MIT, o TSS (Time Sharing System), desenvolvido pela IBM, o Multics, desenvolvido pelo MIT, GE e BELL para ser o sucessor do CTSS e o CP/CMS (Control Program / Conversation Monitor System), que evoluiu para VM (Virtual Machine) da IBM, desenvolvido pelo Cambridge Scientific Center da IBM. Os sistemas operacionais passaram a ser escritos em linguagem de alto nvel. O primeiro caso foi o Multics, que foi escrito em PL1 da IBM. Na sequncia, os projetistas da UNIX criaram o C com a finalidade especifica de desenvolver o UNIX. Famlias de sistemas operacionais de sistemas operacionais tiveram inicio a partir do UNIX, como o Xenix e o Linux, que atualmente possui diversas distribuies. Em 1965, programadores com certa experincia recebiam US$4 por hora, enquanto o custo do aluguel da hora de um computador de grande porte, que possua capacidade muito menor que a dos computadores pessoais de hoje, era normalmente de US$ 500 (Deitel, H. M.; Deitel, P.J.; Choffnes, D. R.; 2005).

1970 Histria Criao da interface grfica com o usurio (GUI Graphical User Interface), desenvolvida pelo Palo Alto Reserach Center (PARC) da Xerox. O primeiro sistema operacional dotado de interface grfica com o usurio se chamou Alto. Ele foi projetado e construdo pela Xerox e, embora a empresa tenha doado certa quantidade para vrias organizaes, ela nunca vendeu nenhuma licena do Alto.
7

CST em Anlise e Desenvolvimento de Sistema

Figura 5 Xerox Alto Personal Computer (1973). Nessa dcada os sistemas foram favorecidos pelos desenvolvimentos anteriores. Tornaram-se multimodais de multiprogramao, que suportava processamento em lote, tempo compartilhado e aplicaes de tempo real. Ocorreu o amplo uso do protocolo TCP/IP e as redes LANs (Local Area NetWork) tornaram-se praticas e baratas a partir da aplicao do padro Ethernet desenvolvido no Palo Alto Research Center (PARC) da Xerox. Com esses avanos, as comunicaes entre computadores ficaram fceis e a conectividade passou a ser mais frequente. Nesse momento, os sistemas operacionais passaram a oferecer servios de configurao da rede e de administrao da segurana, e seu desempenho continua crescendo. Os sistemas GUI foram amplamente explorados na dcada de 1980 pela Apple e pela Microsoft.

1980 Histria O sistema Apple II teve aceitao extraordinria. A IBM lana o Personal Computer (PC) em 1982 e a Apple lana a sua verso de computadores pessoal, batizado de Macintosh, em 1984. O poder de processamento dos microprocessadores cresceu de tal forma nessa dcada, que os computadores pessoais possuam um
8

CST em Anlise e Desenvolvimento de Sistema poder de processamento equivalente ao dos computadores de grande porte da dcada anterior. Em 1981 a Microsoft lanou a primeira verso do MS-DOS para computadores pessoais IBM. A verso da IBM chamava-se DOS. O sistema operacional MS-DOS representou um marco na indstria de software, porque permitiu que os fabricantes desse produto o rodassem no computador com mais facilidade do que at ento era conseguido com os demais sistemas operacionais existentes. A grande reduo de trabalho que o MS-DOS proporcionou aos fabricantes de software se deu, principalmente, com o uso das Interfaces de Programao de Aplicativos (API), que os programadores utilizavam para realizar manipulaes detalhadas de hardware e outras operaes. Dessa forma, os programadores de aplicaes no necessitariam mais mexer com questes complexas de software, como gerenciamento da memria do computador pessoal e os acessos a seus dispositivos de entrada e sada. Nesse momento ocorreu uma enorme revoluo na utilizao dos recursos digitais, pois indivduos sem formao tecnolgica e pequenas e mdias empresas passaram a ter seus prprios computadores exclusivos, que tambm podiam transmitir dados entre sistemas de forma rpida econmica. Softwares aplicativos, como planilhas eletrnicas e editores de texto, ganharam espao e auxiliaram as empresas a ganhar produtividade. Boa parte dos usurios de computadores pessoais passou a utilizar correio eletrnico, transferncia de arquivos e a acessar bancos de dados remotos. Surgiu ento a computao distribuda, que deu origem arquitetura cliente/servidor.

CST em Anlise e Desenvolvimento de Sistema

Figura 8 Ambiente cliente / servidor. Em meados dessa dcada, a Microsoft desenvolveu sua plataforma GUI, o Windows, que ainda no atuava como sistema operacional porque era executado de forma sobreposta ao DOS.

1990 Histria No final desta dcada, um computador pessoal podia executar varias centenas de milhes de instrues por segundo (MIPS) enquanto armazenava mais de 1 Gb em disco rgido. A Internet levou a uma enorme ampliao na popularidade da computao distribuda. Em 1990 a Microsoft lanou o Windows 3.0, que apresentava grande funcionalidade. O Windows tornou-se popular a partir de 1993, com o lanamento do Windows 3.1. Os sucessores, O Windows 95 e o Windows 98, praticamente dominaram o mercado, ainda nessa dcada. Usurios domsticos e empresas passaram a aumentar sua produtividade com o uso dos computadores pessoais ligados a rede. A Microsoft tornou-se dominante nessa poca.

10

CST em Anlise e Desenvolvimento de Sistema O Windows tornou emprestados, muitos dos conceitos do Macintosh, como cones, menus e janelas, habilitando os usurios a utilizar mltiplas aplicaes concorrentes de forma muito fcil. Em 1993 a Microsoft decidiu entrar no mercado de sistemas operacionais corporativos e lanou o Windows NT.

2000 Histria Ocorre disponibilidade da Internet de alta velocidade, a preo acessvel, atravs de diversas mdias, como par metlicos telefnicos, rede de cabo coaxial das companhias de TV e cabo, satlite e celular. Surgem os microprocessadores com mais de um ncleo, o que agrega uma forte ampliao da capacidade de processamento dos computadores pessoais e notebooks. Linguagem de programao como o Java, predispe ao surgimento da computao paralela. Diferentemente dos sistemas e computadores da dcada de 1960, que processavam suas instrues de forma sequencial, ou seja, uma aps a outra, na computao paralela o processamento de uma determinada tarefa se d enquanto o processador processa outras informaes e gerencia diversos dispositivos. Surgem sistemas operacionais de cdigo aberto, como o FreeBSD, OpenBSD e Linux, baseado no GNU (General Public Licence) criado pela Free Software Foundation -, que um conceito da dcada de 1980, desenvolvido por seu fundador, Richard Stallman. Ele especifica que qualquer pessoa pode modificar e redistribuir software livremente sob sua licena, desde que as modificaes sejam claramente especificadas e que qualquer outro derivado do software tambm seja livre. Tornou-se possvel configurar e registrar as preferncias do perfil dos usurios, o que faz com que o sistema operacional se ajuste a essas preferncias toda vez que o usurio realize sua autenticao no sistema operacional.

11

CST em Anlise e Desenvolvimento de Sistema Caractersticas do tipo plug-and-play foram adicionadas aos sistemas operacionais. Elas habilitam os usurios a adicionar e remover dispositivos do sistema operacional sem a necessidade de configura-los manualmente a cada nova ao. Os projetistas preparam sistemas operacionais padronizando as interfaces com os usurios, como, por exemplo, no caso da adoo do sistema de janelas e cones tambm por outros sistemas operacionais, como o Linux e suas distribuies, e pelo prprio UNIX. Surge computao mvel, proporcionada por dispositivos como telefones celulares, smartphones e PDAs, que passam a ser dotados de processadores cada vez mais poderosos, dando oportunidade para a criao de novos sistemas operacionais que podero estar associados a questes muito especificas. A proliferao dos dispositivos mveis deve-se em parte evoluo da amplitude e velocidade e reduo de custos dos servios de comunicao de dados para esses dispositivos.

1.3 Conceitos bsicos sobre processos, memria e arquivos.


Processador: o crebro do micro, encarregado de processar a maior parte das informaes, o processador composto basicamente de quatro partes: (ULA unidade logica e aritmtrica, Unidade de controle, Registradores e MMU Memory Management Unit), boa parte dos sistemas operacionais depende do processador para gerenciar o seu mecanismo de proteo, de forma a impedir alguns processos de acessar informaes privilegiadas ou memria que no lhe foi alocada. um componente do hardware que executa um conjunto de instrues em linguagem de mquina, objetivando a execuo eficiente de uma atividade especifica. Os processadores podem atuar tambm como CPU (Unidade Central de Processamento), como um coprocessador grfico, etc. Memria principal: a RAM (Random Acess Memory). Consiste em uma memria voltil e de acesso aleatrio. Ser voltil significa que perde seus dados quando o computador desligado. Quando ao acesso aleatrio, permite que os processos possam realizar pesquisas em qualquer ordem para a localizao de dados. O sistema pode impedir esses processos de acessar endereos de memoria que no lhe foram atribudo, fornecendo registradores de limite que especificam o endereo de inicio e de fim da memria atribuda em um processo.
12

CST em Anlise e Desenvolvimento de Sistema As memorias DRAM (RAM Dinmica) so os tipos mais comuns de memoria RAM. Elas precisam ser acessadas, obrigatoriamente, de tempos em tempos para que o contedo no seja perdido. As memorias SRAM (RAM Esttica), normalmente utilizadas como caches de processador, no precisam ser acessadas periodicamente, so mais rpidas e tambm mais caras que as memorias DRAM. Hierarquia das memrias: Registradores: estas memrias, muito rpidas, operam na velocidade do processador, esto incorporadas no prprio processador e guardam dados para uso imediato por ele; Cache: as memrias cache so divididas em L1 e L2 e as vezes em L3 e so integradas aos processadores mais novos para poder explorar as interconexes de alta velocidade. Muitos megabytes so transferidos entre a cache e o processador antes de estarem disponveis para a memoria principal. Possuem uma latncia (tempo de resposta) superior dos registradores; Armazenamento secundrio: a forma de armazenamento mais lenta, porm com maior capacidade de armazenamento. So os discos rgidos, CD, DVD, etc. Latncia (em ciclos do processador)

Figura 7 Hierarquia de memria.


13

CST em Anlise e Desenvolvimento de Sistema Novos desenvolvimentos dos fabricantes tendem a possibilitar o emprego de memrias mais velozes e de maior capacidade, com custo menor, respeitando a Lei de Moore. Essa lei, que uma profecia feita na dcada de 1970 por Gordon Moore, um dos fundadores da Intel, previa que a potncia dos processadores dobraria a cada 18 meses. Ela sobreviveu por mais de duas dcadas e ainda no parece estar totalmente desgastada, apesar do ciclo evolutivo dos transistores estar chegando ao fim e novas tecnologias estarem sendo estudadas. Armazenamento secundrio: devido a sua capacidade limitada e a sua volatilidade, a memria principal no adequada para armazenar grandes quantidades de dados ou por muito tempo, ou ambos. Para realizar o armazenamento de grandes quantidades de dados, de forma permanente, como arquivos e softwares, o computador usa o armazenamento secundrio. Esse armazenamento se d normalmente no disco rgido ou no pen drive. Apesar de custar menos e armazenar mais do que as memrias RAM, no possui a mesma velocidade de acesso.

Disco Rigido.

1.4 Sistema monotarefa, multitarefa, multiusurio.


Sistema monousurio e monotarefa Este se d quando o sistema operacional permite que apenas um usurio execute uma tarefa de cada vez. Um bom exemplo so os sistemas operacionais de boa parte dos telefones celulares e tambm o sistema operacional PALM OS.
14

CST em Anlise e Desenvolvimento de Sistema Sistema monousurio e multitarefa o caso do usurio que utiliza um computador pessoal em casa ou no escritrio. Essa situao configura um ambiente monousurio, porque apenas um usurio acessa o computador pessoal em cada momento. Contudo, sistemas operacionais como o Windows XP, Windows Vista e Linux permitem que esse usurio utilize muitas tarefas simultaneamente, como, por exemplo, acessar e-mails enquanto visita alguns sites e verifica os dados de uma planilha, ouvindo uma rdio na internet. Sistema multiusurio o sistema operacional comumente encontrado nos servidores, em que uma srie de usurios pode estar realizando tarefas concorrentes e acessos a informaes de banco de dados sem que um interfira no trabalho do outro. Um exemplo o Windows XP Server 2003 ou o UNIX.

Figura 9 Sistema multiusurio.

1.5 Chamadas ao sistema


Desde a dcada de 1980, os sistemas operacionais incorporaram as Interfaces de Programao de Aplicativo ou API (Application Programming Interfaces). As APIs fornecem rotinas que os programadores podem utilizar no desenvolvimento de software para requisitar servios ao sistema operacional, por exemplo, para realizar uma impresso ou gravar um determinado contedo em disco. Essas chamadas das APIs, que executam rotinas numa camada mais baixa do sistema, so conhecidas como chamada ao sistema.

15

CST em Anlise e Desenvolvimento de Sistema


Aplicao

API

Espao do usurio
--------------------

Interface de chamadas ao sistema

Espao do ncleo

Memria

Disco

Figura 10 Interface de programao API.

1.6 Sistemas com compartilhamento de tempo (Time-Sharing)


Um sistema com compartilhamento de tempo (Time Sharing), tambm conhecido como multitarefas (Silberschatz, A.; Peterson, J. L.; Gavin, P. 1992), uma extenso lgica da multiprogramao. Vrios jobs so executados pela CPU, que comuta o processamento de cada job. O sistema Time-Sharing foi desenvolvido para prover interatividade no uso dos computadores pessoais a um custo acessvel. Um sistema Time-Sharing utiliza o gerenciamento e a multiprogramaa da CPU para prover a cada usurio uma pequena poro de tempo compartilhado de processamento.

1.7 Sistemas distribudos


O processamento distribudo de dados compreende a ao de um conjunto de processadores interconectados, de tal forma a permitir a descentralizao dos recursos e prover um ambiente para a execuo de programas de aplicao.
16

CST em Anlise e Desenvolvimento de Sistema

Figura 10 Organizao interna de um processador dual. A maior vantagem desse sistema que, em caso de falha de Hardware de qualquer dos processadores, o outro pode assumir as funes e continuar os seus trabalhos. Essa caracterstica aumenta a confiabilidade no sistema.

1.8 Sistema de tempo real


sistemas utilizados normalmente como um dispositivo de controle rodando em uma aplicao dedicada.

1.9 Bootstrap
Para que um sistema operacional possa comear a gerenciar os recursos de um computador, necessrio que ele esteja carregado na memria no momento da inicializao do computador.

2.0 GERENCIAMENTO DE PROCESSOS 2.1 Conceituao de processos


O gerenciamento de processos ocorre porque o sistema, quando intercala a execuo de um determinado processo, deve conseguir administra-lo cuidadosamente para que possa reinicia-lo quando ele for retomado. Os processos devem possuir a capacidade de poder comunicar-se com o sistema operacional, de forma que possam informar, por exemplo, o fim da execuo do processo.

2.2 Condies de corrida e regies crticas


Alguns sistemas operacionais permitem que processos que trabalham de forma simultnea frequentemente compartilhem o mesmo armazenamento.
17

CST em Anlise e Desenvolvimento de Sistema Esse armazenamento pode ocorrer na memria principal ou pode ser um arquivo compartilhado. A natureza do armazenamento no elimina a regio critica quando ocorre o risco de problema.

Dois processos procuram acessar a memria compartilhada ao mesmo tempo. Fonte: Baseado em Tanenbaum (1987).

Para prever o aparecimento das regies crticas, deve-se encontrar um meio de proibir que mais processos leia ou grave os dados compartilhados no mesmo momento e no mesmo endereo. Assim, necessrio garantir que, se um processo estiver utilizando uma varivel ou arquivo compartilhado, o outro processo ser impedido de realizar a mesma tarefa.

2.3 Concorrncia e sincronizao


2.3.1 Processos concorrentes Os processos no sistema podem ser executados de maneira concorrente. Isso quer dizer que muitos processos podem ser multitarefa em uma CPU. Existem vrias razes que justificam permitir as execues concorrentes: Compartilhamento de recurso fsico: os recursos de hardware do computador so finitos e podem ser compartilhados, tornando o ambiente multiusurio; Compartilhamento de recursos lgicos: muitos usurios podem estar interessados no mesmo fragmento de informao, que pode ser provida em um ambiente que permita o acesso concorrente e esses recursos;

18

CST em Anlise e Desenvolvimento de Sistema Aumento de velocidade da computao: quando se deseja que uma tarefa especifica seja executada rapidamente, quebrasse essa tarefa em subtarefas e uma a uma elas so executadas paralelamente a outras; Modularidade: quando ocorre a construo de sistema em padro modular, dividindo-se as funes em processos distintos; Convenincia: o usurio pode querer ter muitas tarefas para trabalhar ao mesmo tempo. Um exemplo disso quando os usurios podem estar editando, imprimindo e compilando de forma concorrente. 2.3.2 Sincronizao Sero apresentadas algumas instrues simples de hardware que podem ser executadas em muitos sistemas. Essas instrues especiais podem ser usadas para resolver os problemas de regies criticas com relativa simplicidade. Uma instruo pode ser definida na forma que segue: function test-and-set(var target: boolean): boolean; begin Test-and-set. = target; Target: = true; end;

2.4 Monitores e semforos


2.4.1 Monitores Para facilitar o processo de escrever programas de forma correta, foi proposta uma sicronizao de alto nvel chamada monitor. Um monitor uma coleo de procedures, variveis e estruturas de dados que so agrupados em um tipo especial de pacote. Processos podem chamar as procedures em um monitor se necessitam, mas no tero acesso s estruturas de dados internos de um procedure declarada fora do monitor. 2.4.2 Semforos Como resultados para a dificuldade com as regies criticas, existe uma ferramenta de sicronizao chamada semforo. O semforo um contador e usado quando o recurso a ser utilizado pertence a um conjunto de recursos idnticos. uma varivel inteira, maior que zero, que acessada apenas por duas operaes: P (wait) e V (signal). O P decrementa 1, quando um recurso removido do conjunto e est em uso pelo thread. O V acrescenta 1, o que indica que a thread devolveu um recurso.
19

CST em Anlise e Desenvolvimento de Sistema

2.5 Comunicao interprocessos


Ocorre quando h a necessidade de que os processos se comuniquem uns com os outros.

2.6 Escalonamento de processador


O escalonamento de processador ocorre quando existe uma politica do sistema para escolher quais processos executar. A politica de escalonamento deve atender algumas premissas ligadas a desempenho e maximizao do nmero de processos executados, reduzir o tempo de latncia (tempo de espera antes da execuo), evitar antecipao indefinida de processos e aperfeioar o uso do(s) processador (es).

3.0 GERENCIAMENTO DE MEMRIA 3.1 Conceituao


O gerenciamento de memria estabelece a estratgia de otimizao da memria diante da carga que esta sofrer, e normalmente realizado via software ou hardware. O gerenciamento de memria um recurso importante do sistema operacional, pois estabelece como os espaos de memria disponveis sero alocados para os processos e como ir se atender as requisies de memria de um processador.

3.2 Swapping
Compreende um esquema de troca no qual os processos no permanecem na memria principal at o final de sua execuo. Sendo assim, enquanto o processo aguarda uma E/S, substitudo por outro processo na memoria, para retornar assim que a ao de E/S estiver concluda. Quando ocorre a retirada do processo da memria, o sistema armazena o processo num armazenamento temporrio (swap out). Assim que o sistema recupera o processo (swap in) do armazenamento secundrio ocorre a continuao do processamento. O sistema operacional normalmente realiza o swap out e o swap in muitas vezes antes de terminar a execuo do processo.

3.3 Memria virtual


Os sistemas de memoria virtual do aos processos a impresso de que h mais memria disponvel do que de fato existe instalada. Para o proposito deste tpico o aluno deve saber que h dois tipos de endereos nos sistemas

20

CST em Anlise e Desenvolvimento de Sistema de memoria virtual: os propsitos pelos prprios processos (endereo virtual) e os disponveis na memria principal (endereo real). Toda vez que um processo acessar um endereo virtual, o sistema operacional o converter em um endereo real. O proposito desse recurso aperfeioar o uso da memria, porque memrias principais so rpidas, mas muito caras. Por isso, construir um sistema totalmente pensado para se alojar na memria principal invivel, dada a limitao de tamanho que esse sistema necessariamente teria. Portanto, uma opo interessante criar a iluso de que h mais memria utilizando-se o espao do armazenamento secundrio.

Mapeamento de endereos reais e virtuais. Fonte: Baseado em Deitel, H. M.; P. J.; Choffnes, D. R. (2005).

3.4 Segmentao
Na segmentao de memria fsica, os dados e instrues de um programa so divididos em blocos, denominados segmentos. Cada segmento pode conter um fragmento do contedo que deve ser armazenado, sem a obrigao de que os blocos tenham o mesmo tamanho, conforme a figura seguinte:

21

CST em Anlise e Desenvolvimento de Sistema

Alocao de memria contigua em um sistema de segmentao de memria real. Fonte: Baseado em Deitel, H. M.; Deitel, P.J.; Choffnes, D.R.(2005).

22

CST em Anlise e Desenvolvimento de Sistema

Alguns tipos de sistemas operacionais


Quando se pensa em sistema operacional, logo vm mente alguns dos mais famosos softwares do mercado, como o Windows e o Linux. Mas os sistemas operacionais surgiram muito antes do desenvolvimento do Windows e do Linux. Sistemas como MVS, OS/390 e o prprio UNIX so mais antigos.

23

CST em Anlise e Desenvolvimento de Sistema

24