Sistemas operacionais

Click here to load reader

download Sistemas operacionais

of 37

Transcript of Sistemas operacionais

  • 1. Prof. Robrio
    SISTEMAS OPERACIONAIS

2. Apresentao.
Se voc possui um computador ou trabalha com um, ento j utilizou um sistema operacional. Todos os computadores vendidos para o uso domstico ou para escritrios incluindo os notebooks (computadores portteis) utilizam um programa chamado Sistema Operacional. A maioria dos computadores vendidos vem com o MS-Windows XP. Alguns computadores utilizados em empresas, denominados os Computadores Servidores possuem um sistema operacional chamado Unix, e existe um tipo de computador chamado Macintosh cujo sistema operacional denominado Mac-OS X. O Sistema Operacional o primeiro programa que um computador ir executar. Sem o sistema operacional, os computadores atuais seriam inutilizveis. Recentemente os sistemas operacionais tambm so utilizados em telefones celulares,contendo a maioria das funcionalidades que so encontradas nos sistemas operacionais dos computadores. Um celular moderno mais poderoso que um O objetivo de um sistema operacional organizar e controlar o hardware e o software para que o dispositivo funcione de maneira flexvel e previsvel.computador de mesa, daqueles de 20 anos atrs.
3. Objetivos.
Este mdulo tem como objetivo passar ao alunos os conhecimentos gerais sobre osSistemas Operacionais: como so construdos, quais so as caractersticas que devem estar presentes, os tipos de sistemas operacionais, quais as diferenas entre os sistemas, dentre outros tpicos.
4. Ementa.
Esta disciplina ser trabalhada da seguinte maneira:
Parte Terica - Conceitos Gerais, Estruturao do Sistema Operacional,Gerenciamento de Processos, Memria, Dispositivos e Arquivos, Diferenas entre os Sistemas de Arquivos Diferenas entre o MS-Windows e Linux, Sistemas Especficos.
Parte Prtica Realizao de exerccios, atividades, leituras adicionais, debates.
Material Complementar vdeos informativos e apostilas com assuntos diversos.
5. Unidade I
Primeiros Computadores
Primeiros Microcomputadores
Sistemas Operacionais Modernos
6. Primeiros Computadores
Em 1890, foi desenvolvido o primeiro computador mecnico. A partir de 1930, comearam as pesquisas para substituir as partes mecnicas por eltricas. O Mark I, construdo em 1944 por uma equipe da Inglaterra, o primeiro computador eletromecnico capaz de efetuar clculos mais complexos sem a interferncia humana. Ele media 15m x 2,5m. Em 1946,surgiu o ENIAC (ElectronicNumericalIntegratorandComputer), primeiro computador eletrnico e digital automtico: pesava 30 toneladas, utilizava cerca de 18 mil vlvulas e realizava 4.500 clculos por segundo. O ENIAC continha a arquitetura bsica de um computador. A inveno do transistor, em 1947, substituiu progressivamente as vlvulas,aumentando a velocidade das mquinas.Os primeiros computadores, por serem eletromecnicos, eram muito difceis de serem operados. Era necessrio ter o conhecimento de toda a sua arquitetura e a programao dessas mquinas era feita em painis contendo cerca de 6.000 interruptores. E, alm disso,esses computadores no possuam monitor ou teclado, nem sistema operacional.
7. A partir de 1950 os computadores comearam a ser construdos com a utilizao de transistores, tornando-se mquinas puramente eletrnicas. Surgiram dispositivos auxiliares para operarem em conjunto com o computador, tais como: disco-rgido, memria RAM,teclado e monitor. Foi nessa poca que surgiu o primeiro computador, o Univac 1103, com um sistema operacional, o ERA, programa que permitia a interao, limitada, entre o operador e a mquina e possibilitava a execuo das tarefas de maneira mais simplificada. Na dcada de 60 surgiram os circuitos integrados, que permitiram a criao de computadores por um preo bastante inferior. Um computador de capacidade mdia, da dcada de 50, custava centenas de milhares de dlares, e um com capacidade equivalente, da dcada de 1960, podia ser comprado por cerca de 20.000 dlares. Graas queda nos preos, os computadores tornaram-se equipamentos comuns nas mdias e grandes empresas dos Estados Unidos e Europa. Alm da queda nos preos, houve tambm o surgimento de vrias inovaes, tanto na eletrnica quanto na rea do desenvolvimento de programas. Em 1971, a Intel projetou o processador i4004, dispositivo que reuniu num mesmo circuito, todas as funes do computador, tecnologia que permitiu a criao do computador pessoal, ou microcomputador. O processador a parte mais importante do computador, pois responsvel por coordenar a realizao de todas as tarefas.
8. Primeiros Microcomputadores.
O primeiro computador pessoal o Apple I, inventado em 1976 pelos americanos Steve Jobs e StephanWozniak. Em 1981, a IBM lanou o seu PC (PersonalComputer), que se tornou um sucesso comercial, utilizando o processador Intel i8080. Posteriormente, os PC's passaram a usar processadores cada vez mais potentes: i286, i386SX, i386DX, i486SX,i486DX. Na dcada de 90 surgiram os computadores que, alm do processamento de dados,renem fax, modem, secretria eletrnica, scanner, acesso Internet e unidade para CD. Basicamente, o computador formado por: Gabinete, Monitor, Teclado e Mouse. Os outros dispositivos (caixa de som, microfone, impressora, digitalizador, etc.) so dispositivos acessrios.Na dcada de 80 os computadores tornaram-se equipamentos populares, comprados para serem utilizados em casa, auxiliando a organizao e planejamento domstico, alm de ser utilizado no entretenimento familiar. Havia uma diferena essencial nos sistemas operacionais feitos at a dcada de 80 e os sistemas feitos a partir de 1990: a maneira como o usurio realizava as operaes no computador. Ainda em 1980 um determinado tipo de sistema operacional comea a se tornar popular: o Sistema Operacional com Interface Grfica. Em 1984 surge o Apple Macintosh, primeiro computador popular com interface grfica, e em 1985 surge o MS-Windows 1.0, primeira verso do sistema operacional Windows.
9. Sistemas Operacionais Modernos.
Em 1993 a empresa Intel, que, na poca, j detinha a liderana no desenvolvimento de processadores, criou o Pentium, e em 1995 a Microsoft lana o Sistema Operacional Windows 95, e a partir dessa data iniciou-se uma nova etapa na Computao, com avanos tecnolgicos em praticamente todas as reas. Atualmente quase todos os sistemas operacionais utilizam interfaces grficas para permitir que o usurio possa realizar todas as tarefas no computador (ou em telefones celulares com vrias funcionalidades). Os sistemas mais utilizados atualmente so: MS-Windows, Mac-OS X, Linux (KDE) e Symbian (utilizado na maioria dos aparelhos de telefone celular). A utilizao de interfaces grficas facilita em muito a utilizao dos computadores, pois a torna
mais intuitiva e mais simples.
10. Unidade II
Classificao Dos Sistemas Operacionais
Classificao Pela Arquitetura Do Sistema
Classificao Pela Execuo De Tarefas
Classificao Pela Quantidade De Usurios
11. Classificao Dos Sistemas Operacionais
Os primeiros Sistemas Operacionais foram feitos para executarem uma nica tarefa em um computador especfico, sendo utilizado por um nico usurio a cada tarefa. Com o desenvolvimento da informtica, os sistemas operacionais foram evoluindo, e hoje podem ser
classificados de acordo com as seguintes anlises:
Caractersticas bsicas da Arquitetura do Sistema: Monoltico, Microkernel ou Hbrido.
Capacidade de execuo das tarefas: Monotarefa ou Multitarefa;
Quantidade de usurios que podem operar o sistema: Monousurio ou Multiusurio.
12. Classificao Pela Arquitetura Do Sistema
Em relao a Arquitetura os Sistemas Operacionais podem ser:
Monoltico: possui um conjunto de instrues de alto nvel que possibilitam o gerenciamento de processos, memria e dispositivos atravs de mdulos dedicados que so executados com privilgios especiais. O sistema operacional escrito como uma coleo de rotinas, em que cada uma pode chamar qualquer outra rotina, sempre que for necessrio. Exemplos de sistemas desse tipo so: MS-Windows 98, Linux e Solaris.
Microkernel: algumas das funes do sistema operacional foram separadas em programas chamados Servidores. Os servidores se comunicam com um sistema operacional mnimo, que possui todas as instrues de manipulao e acesso a todos os componentes do computador. O sistema Minix, que uma variao do Unix, e possui uma arquitetura de microkernel.
Hbrido: nesse caso os Servidores externos so executados em um modo chamado
protegido, permitindo assim que esses programas tenham alguns privilgios de acesso a alguns componentes do computador, melhorando o desempenho geral do sistema. Sendo hbrido, tem a capacidade de agregar ou desagregar funcionalidades,sem perder performance ou estabilidade presentes na sua estrutura inicial. Sistemas com arquitetura hbrida so: MacOS X, Windows 2000 e BeOS.
13. Classificao Pela Execuo De Tarefas
A capacidade de execuo de tarefas divide os sistemas em:
stemasMonotarefa: executam uma tarefa de cada vez, como por exemplo: imprimir
um arquivo. Praticamente no so mais utilizados hoje em dia, devido ao desperdcio
de recursos do computador que eles causam. O extinto MS-DOS da Microsoft um exemplo de sistema operacional monotarefa.
Sistemas Multitarefa: executam vrias tarefas simultaneamente, como por exemplo: criar um desenho, tocar uma msica e imprimir um documento. Sistemas Operacionais multitarefa conseguem maximizar a utilizao dos recursos do computador. At mesmo os sistemas operacionais de alguns aparelhos de telefone celular so multitarefa. Um exemplo o MS-Windows XP. Os sistemas multitarefa podem ser classificados de acordo com a forma com que suas aplicaes so gerenciadas, podendo ser divididos em: sistemas de tempo compartilhado e sistemas de tempo real.
Sistemas de Tempo Compartilhado: (Time SharingSystens em ingls) permitem que diversos programas sejam executados a partir da diviso do tempo de utilizao do processador em pequenos intervalos, denominados fatias de tempo (time slice). Se houver a necessidade de executar mais de um programa, o sistema operacional ir designar uma fatia de tempo para cada um, e se a fatia de tempo concedida a um programa no for suficiente para a concluso do mesmo, ele ser interrompido pelo sistema operacional e seu estado corrente ser armazenado, e um outro programa entrar em execuo. Essa etapa denominada de Troca de Contexto. Essas trocas acontecero enquanto houver algum programa que no tenha concludo a sua tarefa.
14. Figura 2.1: Diagrama funcional
de um Sistema Operacional Monoltico
15. A figura 2.1 demonstra o funcionamento de um sistema de tempo compartilhado durante a execuo de 2 programas, A e B. Inicialmente o sistema operacional executa o programa A, aps um certo tempo, o programa A ser interrompido, e a execuo passar para o programa B. Quando o sistema operacional voltaexecutar o programa A, ele continua a execuo do ponto de parada anterior. Sistemas de Tempo Real: a diferena dos sistemas de tempo real para os sistemas de tempo compartilhado a definio do tempo de execuo de cada programa. Nos sistemas de tempo compartilhado, quem define o tempo de processamento dos programas o sistema operacional, j nos sistemas de tempo real quem define o tempo de execuo do programa o prprio programa.
16. No sistema de tempo real no existe o conceito de fatia de tempo, um determinado programa ser executado no processador pelo tempo que for necessrio, at a sua concluso, ou at que seja iniciado um programa com maior prioridade de execuo. A prioridade tambm definida pela prpria aplicao e no pelo sistema operacional.
Praticamente todos os sistemas operacionais utilizados nos computadores hoje em dia so de tempo compartilhado. Os sistemas Windows XP, Linux, MacOS X e Symbianso sistemas operacionais de tempo compartilhado. Os Sistemas de Tempo Real so utilizados em aplicaes de controle de processos, como monitoramento de refinarias de petrleo, controle de trfego areo, de usinas, ou em qualquer aplicao em que o tempo de processamento fator fundamental.
17. Classificao Pela Quantidade De Usurios
Por ltimo, abordaremos a classificao quanto a quantidade de usurios que operam um sistema operacional:
Monousurio: O sistema operacional foi criado para que um nico usurio utilize os recursos do computador. Na prtica mais de uma pessoa pode utilizar, mas, nesse caso, o sistema operacional no far distino entre as pessoas, tratando todas como se fossem a mesma. Isso significa que um documento escrito por algum poder ser lido (ou alterado) por outra pessoa. Alm disso, qualquer um poder executar qualquer tarefa no computador. As agendas eletrnicas atuais, chamadas PDA (PersonalData Assistentem ingls), utilizam um sistema operacional monousurio.
Multiusurio: Um sistema operacional multiusurio permite que diversos usurios utilizem os recursos do computador. O sistema operacional deve garantir que as tarefas dos usurios estejam separadas e no haja interferncia entre as mesmas. Cada um dos programas utilizados deve dispor de recursos suficientes e separados, de forma que o problema de um usurio no afete toda a comunidade de usurios. Unix e sistemas operacionais mainframe como o MVS so exemplos de sistemas operacionais multiusurio. Os sistemas operacionais Windows XP e MacOS X esto sendo considerados sistemas multiusurio, pois fazem distino entre os vrios usurios que utilizam o computador.
18. Unidade III
Definio De Sistemas Avanados De Processamento
Computadores Com Vrios Processadores
Processador Com Vrios Ncleos
Processamento Distribudo
19. Definio De Sistemas Avanados De Processamento
Os Sistemas Avanados de Processamento caracterizam-se por possuir duas ou mais unidades de processamento interligadas e trabalhando em conjunto, podendo ter dois (ou mais) processadores em um computador, ou vrios computadores conectados em rede. A vantagem desse tipo de sistema permitir que vrias tarefas possam ser realizadas simultaneamente, sem a necessidade de compartilhamento do tempo do processador, ou ento que uma determinada tarefa possa ser dividida entre as unidades de processamento para agilizar a sua concluso.
Como o sistema operacional responsvel por gerenciar a execuo das tarefas, deve estardevidamente adaptado para operar em sistemas com mais de uma unidade de processamento, para poder distribuir a execuo dos programas e maximizar a utilizao dos recursos disponveis. A construo de Sistemas Avanados de Processamento foi feita pensando-se em aplicaes voltadas para o processamento cientfico, explorao de minerais e petrleo,simulaes e computao grfica. Grande parte dos supercomputadores instalados ao redor do mundo est em uso em Laboratrios de Pesquisa dos EUA, Europa e Japo, e em grandes empresas como Dupont, Petrobrs, entre outras.
20. Computadores Com Vrios Processadores
Os computadores com vrios processadores eram utilizados basicamente em pequenos laboratrios cientficos. Atualmente esto disponveis a todas as pessoas, por um preo
muito acessvel. Nesses computadores, o sistema operacional pode distribuir a execuo das tarefas pelos processadores, e em teoria, aumentar o desempenho geral do sistema
proporcionalmente quantidade de processadores disponveis na prpria mquina.
Atualmente, os sistemas operacionais Windows 2003, MacOS X, e algumas verses do Unix podem ser executados em computadores com vrios processadores. O Windows XP no oferece suporte para execuo nesses computadores.
Na prtica o ganho de desempenho no proporcional quantidade de processadores
instalados no computador, pois para trabalhar em um computador com vrios processadores o prprio sistema operacional deve executar operaes de gerenciamento e controle das rotinas para distribuir os programas pelos processadores. Alguns sistemas conseguem uma performance superior a 90%, isto , se o computador possui 16 processadores, o desempenho geral ser 14,4 vezes melhor do que um computador com 1 processador.
21. Processador Com Vrios Ncleos
Um outro tipo de Sistema Avanado formado por computadores em que o processador
central feito com mais de uma unidade principal de processamento. Esses sistemas esto
sendo feitos atualmente para serem utilizados tambm em computadores de escritrio e
domsticos, principalmente por causa da queda de preos. Os processadores Intel Pentium
Dual Core, Intel Core Duo e AMD Athlon X2, entre outros utilizam duas unidades de
processamento em cada processador. De maneira anloga aos sistemas com vrios
processadores, o ganho de desempenho em processadores com vrios ncleos no
proporcional quantidade de ncleos do mesmo. Os processadores Intel QuadCore, e
AMD Phenom utilizam 4 unidades de processamento em um nico processador. E existem
outros com vrios ncleos como o SUN UltraSPARC T1 que possui 8 ncleos internos, e o
Tile64 com 64 ncleos de 16 bits.
22. Processamento Distribudo
Um computador de Processamento Distribudo um sistema formado por uma rede de computadores interligados, denominados ns da rede, com o objetivo de realizarem o processamento conjunto de uma tarefa de grandes propores. Esta tarefa ser ento dividida em pequenas sub-tarefas, e cada uma das sub-tarefas ser executada em um n da rede, e dessa forma consegue-se um ganho substancial no tempo de execuo da tarefa.
Esses sistemas so construdos com alguns sistemas operacionais disponveis para computadores de mesa, a diferena a incluso de alguns programas especiais, o mais utilizado chama-se LAM-MPI, que permite que os computadores da rede realizem a comunicao necessria para a diviso da execuo das tarefas. O LAM-MPI tambm possui uma biblioteca de funes que devem ser utilizadas nos programas a serem executados nos sistemas distribudos, de modo que realizem as devidas comunicaes e transferncias de dados.
Os agregados de computadores (computer clusters em ingls) tambm so sistemas distribudos, a diferena entre um Sistema Distribudo Real, como o IBM BlueGene e um cluster que o primeiro possui uma arquitetura eletrnica especializada e um sistema operacional especfico, enquanto que os clusters so formados por computadores comuns
conectados via Ethernet e geralmente utilizam o sistema operacional Linux (o Windows NT raro).
23. Unidade IV
Estrutura Do Sistema
Funes do Sistema Operacional
Chamadas ao Sistema
24. Estrutura Do Sistema
O sistema operacional utilizado para organizar e controlar a realizao das tarefas feitas no computador. Para que isso acontea de maneira ordenada, a relao atualmente utilizada entre os componentes do sistema, isto , o computador, o sistema operacional, os programas, e at mesmo o usurio, a seguinte: O Usurio utiliza programas para realizar suas atividades, esses programas so: aplicativos (Word, AutoCAD, Oracle), utilitrios (WinZip, MediaPlayer, MSN) e jogos (FIFA, Ragnarok,Warcraft). At mesmo o Painel de Controle do Windows XP um programa:
C:WindowsSystem32control.exe.
Os programas em execuo necessitam em determinados instantes realizar o acesso aalgum dispositivo, como o monitor de vdeo ou a impressora, para apresentar o resultado de uma tarefa ou interagir com o usurio. Imagine que um programa atualize um arquivo no disco-rgido. O programa no pode acessar diretamente os dados no disco, pois um recurso compartilhado e sua utilizao deve ser gerenciada pelo sistema operacional. Para que isso acontea, os programas executam algumas operaes com o auxlio do sistema operacional, essas operaes so realizadas utilizando-se funes denominadas Chamadas ao Sistema, ou System Calls em ingls.
O Sistema Operacional deve verificar qual usurio est utilizando o computador naquele instante, se os programas em execuo esto ativos ou esperando alguma concluso de uma tarefa, se no existe conflito entre os programas, se os dispositivos conectados ao computador esto disponveis para utilizao, dentre outras tarefas.
25. Funes do Sistema Operacional
As principais funes do Sistema Operacional so:
Tratamento de Interrupes: Durante a execuo dos programas, o Sistema Operacional deve estar preparado para tratar eventos inesperados. A interrupo gerada por um evento externo ao programa em execuo, no dependente da instruo que est sendo executada, como por exemplo, a movimentao do mouse. Ao trmino de cada instruo do programa, o processador verifica se houve a ocorrncia de alguma interrupo e caso haja, avisa o sistema operacional, para que o mesmo possa realizar as devidas operaes. O programa em execuo ser momentaneamente paralisado, e para que possa retornar execuo posteriormente,um determinado conjunto de informaes sobre sua execuo ser armazenada. As interrupes sempre so geradas por algum dispositivo do computador: disco-rgido, impressora, teclado, processador, etc.
Tratamento de Excees: as excees so semelhantes s interrupes, pois ambas ocasionam a paralisao da execuo dos programas ativos no computador. A diferena entre ambas que nas excees a causa da paralisao originada em algum programa em execuo. Por exemplo, em um programa que realiza operaes matemticas no pode existir uma instruo que faa a diviso de um nmero por zero, caso isso acontea, essa instruo no poder ser executada (pois no existe
resposta).Quando ocorre uma exceo, o sistema operacional deve emitir um aviso apenas no programa que causou a exceo indicando que uma operao invlida foi executada. (De fato, a operao em si executada, se o sistema operacional estiver preparado para lidar com a situao, apenas um aviso ser exibido ao usurio, caso contrrio, o sistema inteiro pode falhar. Atualmente comum o tratamento preventivo de excees dentro do prprio programa).
26. Gerenciamento de Programas: o sistema operacional responsvel por colocar em execuo, administrar e finalizar todos os programas executados no computador. No gerenciamento feita a alocao de memria, a disponibilizao de recursos, a administrao dos programas em execuo feita fornecendo a cada programa o devido tempo de utilizao do processador e dos dispositivos do computador.
Gerenciamento da Memria RAM: O sistema operacional deve a todo instante verificar a disponibilidade de memria RAM no computador, para evitar que haja travamento do sistema inteiro por falta de espao para armazenamento dos programas ou dados.
Gerenciamento de Arquivos: a criao, edio e excluso de qualquer arquivo no computador s acontecem com a permisso do sistema operacional. Nesta etapa feita a verificao do usurio que est solicitando acesso a um determinado arquivo,qual programa ser executado para manipul-lo, e em alguns sistemas, feito tambm o registro em um local separado do acesso ao arquivo pelo usurio, para fins de controle.
Gerenciamento de Dispositivos: todos os dispositivos conectados ao computador so gerenciados pelo sistema operacional, onde feita a verificao de utilizao do dispositivo, disponibilidade do dispositivo, liberao para uso, entre outras funes.
Suporte a Redes: praticamente todos os principais sistemas operacionais comercializados atualmente oferecem mecanismos de gerenciamento e acesso s redes de computadores. Isto feito por meio de controle de computadores interconectados, protocolos de comunicao utilizados e usurios que esto autorizados a utilizar os recursos disponveis na rede.
27. Alm das tarefas citadas, atualmente os sistemas operacionais tem que possuir a seguinte caracterstica:
Sistema de Segurana: caracterstica de muita importncia nos dias de hoje, devido grande utilizao da internet e dos recursos por ela oferecidos. O sistema operacional deve garantir entre outras coisas que:
Apenas programas confiveis (que tenham a permisso do usurio) sejam executados no computador;
Apenas usurios cadastrados previamente (ou autorizados momentaneamente) tenham acesso aos recursos do computador;
As informaes armazenadas no computador s podem ser acessadas por usurios e programas autorizados a manipul-las.
28. Chamadas ao Sistema
Durante o projeto de Sistemas Operacionais as maiores preocupaes so: proteo do
ncleo do sistema (kernel) e controle do acesso aos recursos do computador. Se um
determinado programa realizar uma operao que comprometa ou bloqueie, indevidamente,um ou mais recursos do computador, todos os outros programas podem ficar comprometidos. Imagine que um programa acesse o disco-rgido para gravar um arquivo, e no libere o disco mesmo depois de gravar, todos os programas no tero acesso ao disco por causa disso.
Para organizar a execuo dos programas, os sistemas operacionais so feitos com um
conjunto de rotinas denominado Chamadas ao Sistema. Essas rotinas so responsveis
por executarem as operaes especiais de acesso aos recursos do computador e de acesso
ao ncleo do sistema. Atravs das informaes passadas a uma rotina, que ser executada
pelo prprio sistema operacional, garantindo assim o controle de todos os recursos
disponveis no computador. Ao trmino da execuo da rotina uma resposta ser enviada ao
programa que solicitou a sua execuo.
29. Unidade V
Definio de Processo
Gerenciamento de Programas
Estados de um processo
Comunicao Entre Processos
30. Definio de Processo
Um programa uma seqncia de instrues ordenadas escritas em uma linguagem computacional (Pascal, C++, Java, etc.). Um processo uma instncia de um programa que est sendo executado, ou seja, o programa sendo executado no computador. Dependendo de como o programa foi criado, mais de um processo pode estar associado a ele durante a execuo, sendo que cada processo representa um determinado conjunto de instrues do programa original. Isto acontece no Mediaplayer, por exemplo, quando h uma msica tocando e o usurio est procurando uma outra msica na lista de msicas, neste caso existe um programa em execuo e pelo menos dois processos associados tambm em execuo.
Os sistemas operacionais mais utilizados hoje em dia so multitarefa, realizada atravs do
compartilhamento do tempo do processador. Desta forma, vrios programas podem ser
executados, e consequentemente vrios processos, em um mesmo computador. Para
realizar esta tarefa o sistema operacional deve separar os programas, e processos, para que
a execuo seja feita de maneira organizada, e para isso as seguintes propriedades devem
ser armazenadas para cada processo:
31. Cdigo executvel do programa associado ao processo;
Espao de Memria utilizado, onde fica armazenados o cdigo executvel, dados utilizados, estruturas de controle de execuo;
Descritores do Sistema Operacional, como tabela de arquivos em disco ou servidores de banco de dados;
Atributos de Segurana, indicando o nome do usurio que iniciou o processo, as permisses de execuo no computador;
Estado do Processo, que informar se o processo est em execuo, esperando a liberao de algum recurso, bloqueado ou em outra situao.
32. Gerenciamento de Programas
O sistema operacional, sendo multitarefa, realiza o compartilhamento do processador entre os processos por meio da ativao, momentnea, do processo que ser executado no processador. Se o processador possuir mais de um ncleo de processamento, mais de um processo poder estar em execuo no processador. Como apenas um processo pode estar
ativo em cada ncleo do processador, os outros devero esperar alguns instantes, at que o
processo em execuo tenha sido executado pelo tempo que o sistema operacional designou a ele. Quando o tempo do processo atual terminar, o sistema operacional realizar uma operao chamada Troca de Contexto, em que o processo atual ser substitudo por um outro processo que estava esperando a liberao de um ncleo no processador.
A Troca de Contexto a etapa em que o sistema operacional armazenar todas as informaes relativas execuo do processo atual, para permitir que o mesmo possa continuar a execuo em outro momento, e incluir um outro processo para ser executado.
Esta etapa deve ser executada de maneira quase instantnea, pois o processador deve ser
utilizado principalmente para executar os programas. Existem trs eventos que podem iniciar a Troca de Contexto:
33. Escalonamento de Processo: como foi dito anteriormente, cada processo em execuo ir utilizar um ncleo do processador por uma fatia de tempo, quando este tempo se esgotar, o processo atual dever ser substitudo por um outro processo;
Ocorrncia de Interrupo ou exceo: quando h a ocorrncia de uma interrupo/exceo, o sistema operacional deve entrar em operao para tratar da interrupo/exceo, e para isso, o prprio sistema operacional iniciar um (ou mais) processo (s) prprio(s).
O terceiro cenrio a troca de modo usurio para modo kernel. Quando tal transio requisitada pelo sistema operacional, uma troca de contexto no necessria, mas
dependendo da implementao isso feito.
34. Os programas so um conjunto de instrues escritos em linguagem computacional.
Exemplos de programas so: MS-Word, MS-Excel, AutoCAD, Adobe Photoshop,MediaPlayer, InternetExplorer, Need for Speed, World of Warcraft, entre outros. Quandoum programa est em execuo, pode ter um ou mais processos associados, os prprios sistemas operacionais possuem vrios processos em execuo durante o funcionamento do computador. Alm de controlar a execuo de cada processo, o sistema operacional deve manter a associao entre um processo e o programa que o originou. Quando um programa iniciado, um processo chamado Pai ou Principal criado, e todos os outros existentes associados ao mesmo programa so denominados Processos Filhos. Se o mesmo programa tiver mais de uma execuo simultnea, por exemplo, duas telas do InternetExplorer representam dois programas em execuo, cada programa ser considerado independente do outro, com seus processos tratados de maneira independente.
35. Estados de um processo
Durante o funcionamento do computador, os vrios processos executados passaro por diferentes estados: em espera, em execuo, bloqueado. Esses estados definem a maneira como sero tratados pelo sistema operacional. O funcionamento especfico de cada estado depende do sistema operacional utilizado, mas de modo geral os processos so divididos em trs grupos.
Quanto um processo criado, ele deve esperar que o sistema operacional conceda a ele um tempo de execuo em um ncleo do processador, ento logo aps a criao o processo ficaem Estado de Espera e fica armazenado na memria principal do computador. Quando o processo recebe do sistema operacional a autorizao para utilizar um ncleo do processador ele passa para o Estado de Execuo, e assim o processo executa suas instrues internas. E assim o processo fica alternando entre os estados de Espera e Execuo, enquanto o programa que o originou no for finalizado. Se durante o estado de Execuo o processo fizer uma solicitao de algum recurso do computador ao sistema operacional, por exemplo, gravar alguma informao no disco rgido, e o recurso no puder ser liberado imediatamente, por exemplo, j houver um outro processo utilizando o discorgido,o processo que ficar esperando a liberao do recurso passar para o Estado de Bloqueio. Neste estado, o processo no participar das trocas de contexto feitas pelo sistema operacional, ou seja, no voltar ao estado de Espera, at que o recurso solicitado seja liberado. Aps a liberao do recurso, o processo passar do estado de Bloqueio para o estado de Espera.
36. Comunicao Entre Processos
A comunicao entre os processos algo de extrema importncia, pois sem ela, a execuo dos programas no seria feita de maneira organizada. Veja a seguinte situao: quando um programa imprime um arquivo, o sistema operacional inicia um programa de gerenciamento da impresso. Esse programa dever controlar a lista de arquivos a serem impressos, permitir que outros arquivos sejam includos na lista, e enviar um arquivo por vez impressora. Nesse caso, pelo menos trs processos sero necessrios para organizar o gerenciamento das impresses, e se no houver comunicao entre esses processos, o gerenciador nunca saber quando incluir um arquivo novo na lista de impresso ou quando
retirar um arquivo da lista de impresso. Para que essa comunicao exista, tanto os programas quanto o sistema operacional devem ser construdos de modo a permitir a efetivao da comunicao. Esta efetivao garantida utilizando-se mecanismos de controle e estruturas de dados que possibilitem a identificao,organizao e separao entre os processos e informaes trocadas entre os processos. Os sistemas operacionais oferecem algumas funes e rotinas para fornecerem suporte aos programas, sendo que essas funes devem ser includas no programa durante o seu desenvolvimento. Alguns exemplos de mecanismos de comunicao entre processos so:
37. FIFO (First In First Out): Neste mecanismo, um processo abre um canal de comunicao com outro processo, sendo que o primeiro apenas escreve dados na FIFO, enquanto o segundo processo l dados da FIFO, este mecanismo deve ser utilizado e gerenciado dentro dos programas, e no pelo sistema operacional.
PIPES unidirecionais: tem funcionamento semelhante ao FIFO, a diferena que nesse caso o controle da comunicao feito pelo sistema operacional.
FILA DE MENSAGENS: Uma fila de mensagens (messagequeue) permite criar uma rea de troca de mensagens entre os processos, sendo que essa rea ser administrada pelo sistema operacional. A caracterstica mais importante da Fila de Mensagens a possibilidade de acesso a uma mensagem de maneira seletiva, pois existe um identificador especial para cada mensagem.
Memria Compartilhada: a memria compartilhada semelhante Fila de Mensagens, a diferena que o controle deve ser feito dentro dos programas que utilizam este mecanismo.