Você está na página 1de 20
sta seja routras > gerén- m insti- chusetts la Vrije rimento PARTE | | PROCESSOS E THREADS “Anyone who stops leoring is eld, whether twenty o eighty. “Anyone who keep learing stay young, The greatest thing in ies to kesp your mind young.” Hey Foro (1863-1947) Empreendedor americano 0 homem nosceu para aprender, aprender tanto quanta vida the permite.” Gurnasis Rosa (1908-1967) Escrtore diplomata brasileiro “O reconhecimento da ignordncia&0 principio da sabedoria.” Socwares (470 a.C-399 aC.) Filésofo grego “Feliz aquele que iranslereo que sabe eoprende o que ensina.” ‘Coma Comat (1889-1985) Poetisa brasileira PROCESSO 5.1 Introdugao A geréncia de um ambiente multiprogramivel é fungdo exclusiva do sistema operaci- ‘onal que deve controlar a execugdo dos diversos programas e 0 uso concorrente do processador ¢ demais recursos. Para isso, um programa ao ser executado deve estar sempre associado a um processo. O conceito de processo € a base para a implementa- ao de um sistema multiprogramével. A geréncia de processos ¢ uma das principais fungdes de um sistema operacional, pos- sibilitando aos programas alocar recursos, compartilhar dados, trocar informagoes € sincronizar suas execugdes. Nos sistemas multiprogramaveis 05 processos so execu- tados concorrentemente, compartilhando 0 uso do processador, meméria principal € dispositivos de E/S, dentre outros recursos. Nos sistemas com multiplos processadores nao $6 existe a concorréncia de processos pelo uso do processador como também a possibilidade de execucdo simultinea de processos nos diferentes processadores. "Neste capitulo serio abordados os principais conceitos relacionados a processos, como sua estrutura, estados de execucao, tipos de processos ¢ sinais. 5.2. Estrutura do Processo 0 processador € projetado para executar instrugdes a partir do ciclo de busca e execu- ‘do, Neste ciclo, o processador busca a instruc a ser executada na meméria princi- pal, armazena-a no registrador de instrugdes para, finalmente, decodificar seus bits € realizar a execugdo. O registrador PC tem a fungio de armazenar sempre o enderego da préxima instrugao a ser executada, e as alteragdes do seu contetido determinam o seqilenciamento de execueto das instrugdes armazenadas na meméria principal. Na visdo da camada de hardware, o processador executa instruges sem distinguir qual programa encontra-se em processamento. £ de responsabilidade do sistema operacional implementar a concorréncia entre programas gerenciando a alternancia da execugio de instrugdes na UCP de maneira controlada e segura. Neste sentido, 0 66 | Arquitetura de Sistemas Operacionais conceito de processo torna-se essencial para que os sistemas multiprograméveis, implementem a concorréncia de diversos programas e atendam a méltiplos usudrios, simultaneamente. Um processo pode ser entendido inicialmente como um programa em execugio, 86 que seu conceito é mais abrangente. Para que a concorréncia entre os programas Ocorra sem problemas, é necessério que todas as informages do programa interrompido sejam guar- dadas para que, quando este voltar a ser executado, no Ihe falte nenhuma informagio necessfria& continuago do processamento. Estas informagdes so fundamentais para que o sistema operacional possa gerenciar a execugdo concorrente de programas, © 6a base de qualquer ambiente multiprogramével. O conceito de processo pode ser defini do como sendo 0 conjunto necessério de informagdes para que 0 sistema operacional implemente a concorréncia de programas. A Fig. 5.1 ilustra a concorréncia de trés programas (PROG_1, PROG_2, PROG_3) associados aos Processos X, Y eZ. No intervalo de tempo At, , processador execu- ta instrugdes do PROG_I. No instante de tempo t,, 0 sistema operacional decide in- terromper temporariamente a execugdo do PROG_I e salva o contedido dos registra- dores do processador, armazenando-0s no Proceso X. A seguir, o PROG_2 € inici doe executado ao longo do intervato At,..No instante t,o sistema operacional deci de interromper 0 PROG_2 e salva 0 contetido dos registradores no Processo Y. Nes- te momento PROG. 3 € iniciado, executa no intervalo de tempo At, até que 0 siste- ma operacional decide interrompé-Io, salvar seus registradores no Proceso Z.e reto- mar a execugao de PROG_I. Para isso, no instante t,, 0 contetido dos registradores do Proceso X € carregado no processador, fazendo com que PROG_I continue sua Fig. 5.1 Concorrénca de programas e procesos maveis suarios sO que rrasem mguar- mmagao ais para as,e€a “defini- acional :0G_3) cide in- egistra- al deci- Y.Nes- osiste- rereto- radores nue sua Processo / 67 execugiio como se nio tivesse sido interrompido. A troca de um proceso por outro no processador, comandada pelo sistema operacional, € denominada mudanca de contexto. Edessa maneira que o sistema operacional implementa e gerencia um ambiente multiprogramével. Em um sistema multiusuério, cada usudrio tem seu programa associado a um pro- cesso. Ao executar um programa, o usuério tem a impressio de possuir 0 processador e todos os demais recursos reservados exclusivamente para seu uso, De fato isto nao € verdade, visto que todos os recursos esto sendo compartilha- dos, inclusive a UCP. Nesse caso, o processador executa 0 programa de um usud- rio durante um intervalo de tempo e, conforme observado, no instante seguinte estard processando um outro programa. Um processo também pode ser definido como o ambiente onde um programa € execu- ado. Este ambiente, além das informagdes sobre a execugao, possu também a quanti- dade de recursos do sistema que cada programa pode utilizar, como 0 espago de ende- regamento da meméria principal, tempo de processador e drea em disco. O resultado da execugo de um mesmo programa pode variar, dependendo do proces- so em que é executado, ou seja, em fungao dos recursos que so disponibilizados para ‘© programa. A falta de recursos pode impedir a execugdo com sucesso de um progra- ma. Caso um programa, por exemplo, necessite utilizar uma érea em disco superior a0, seu limite, o sistema operacional iré interromper sua execucao por falta de recursos dispontveis. ‘Um processo é formado por trés partes, conhecidas como contexto de hardware, con- texto de software e espaco de enderegamento, que juntos mantém todas as informa- ‘gGes necessérias & execugdo de um programa. A Fig. 5.2 ilustra de maneira abstrata os, ‘componentes da estrutura do processo. Programa Espago de Enderegamento Fig. 5.2 Estrature do process (68 / Arquitetura de Sistemas Operacionais 5.2.1 CONTEXTO DE HARDWARE O contexto de hardware de um processo armazena o contetido dos registradores gerais, da UCP. além dos registradotes de uso especifico, como program counter (PC), stack pointer (SP) ¢ registrador de status. Quando um processo est em execugdo, 0 seu con- texto de hardware esté armazenado nos registradores do processador. No momentoem ue 0 processo perde a utilizagao da UCP, 0 sistema salva as informagdes no contexto de hardware do processo. contexto de hardware é fundamental para a implementacdo dos sistemas multipro- graméveis, onde os processos se alternam na utilizago da UCP, podendo ser interrom- pidos e, posteriormente, restaurados. O sistema operacional gerencia a mudanga de con- texto, base para a implementago da concorréncia, que consiste em salvar o contetido dos registradores do processo que esté deixando a UCP e carregé-lo com os valores referentes ao do novo proceso que serd executado. Essa operagdio se resume em subs tituir 0 contexto de hardware de um processo pelo de outro (Fig. 5.3). @®==1@ = Co Processo A Processo B ‘executando: ' ' 1 ‘exocutondo ' Fig. 5.3 Mudanga de contexto, 2s gerais >), stack seu con- entoem contexto ontetido valores m subs- viendo Proceso / 69 5.2.2 CONTEXTO DE SOFTWARE No contexto de software de um processo sao especificados limites e caracterfsticas dos Fecursos que podem ser alocados pelo processo, como o mimero maximo de arquivos abertos simultaneamente, prioridade de execugao e tamanho do buffer para operagdes, de B/S. Muitas destas caracteristicas sao determinadas no momento da criagio do pro- ‘cess0, enquanto outras podem ser alteradas durante sua existéncia. A maior parte das informagdes do contexto de software do processo provém de um arquivo do sistema operacional, conhecido como arquivo de usudrios. Neste arquivo sd0 especificados os limites dos recursos que cada processo pode alocar, sendo gerenciado pelo administrador do sistema. Outras informagdes presentes no contexto de software stio geradas dinamicamente ao longo da execugao do processo. O contexto de software é composto por trés grupos de informagGes sobre o processo: identificagio, quotas e privilégion. * Identificagao ‘Cada processo criado pelo sistema recebe uma identificagio tinica (PID — process identification) representada por um nimero, Através do PID, o sistema operacional e.outros processos podem fazer referéncia a qualquer processo existente, consultan- do seu contexto ou alterando uma de suas caracteristicas. Alguns sistemas, além do PID, identificam 0 processo através de um nome. processo também possui a idemtificagdo do usuario ou proceso que 0 criou (owner), Cada usuério possui uma identificago tinica no sistema (UID — user identification), atribuida ao processo no momento de sua criagio. A UID permite implementar um modelo de seguranga, onde apenas os objetos (processos, arqui- Vos, freas de meméria etc.) que possuem a mesma UID do usudrio (processo) po- dem ser acessados. * Quotas As quotas sto os limites de cada recurso do sistema que um processo pode alocar. Caso uma quota seja insuficiente, o processo poder ser executado lentamente, in- terrompido durante seu processamento ou mesmo ndo ser executado. Alguns exem- pplos de quotas presentes na maioria dos sistemas operacionais si ‘+ niimero méximo de arquivos abertos simultaneamente; + tamanho maximo de meméria principal e secundiiria que o processo pode alocar; + nimero méximo de operagdes de E/S pendentes; + tamanho méximo do buffer para operagdes de E/S; + niimero maximo de processos, subprocessos e threads que podem ser criados, * Privilégios s privilégios ou direitos definem as agdes que um processo pode fazer em relagio a-ele mesmo, aos demais processos ¢ ao sistema operacional. Privilégios que afetam o proprio processo permitem que suas caracteristicas pos- sam ser alteradas, como prioridade de execucéo, limites alocados na memoria prin- cipal e secundéria etc. J4 08 privilégios que afetam os demais processos pern tem, além da alteraedo de suas préprias caracteristicas, alterar as de outros pro- ccessos. 70 / Arquitetura de Sistemas Operacionais Privilégios que afetam o sistema so os mais amplos e poderosos, pois estdo relaci ‘onados & operagao e & geréncia do ambiente, como a desativagao do sistema, altera- ‘¢do de regras de seguranga, criago de outros provessos privilegiados, modificagao de parametros de configuragio do sistema, entre outros. A maioria dos sistemas ‘operacionais disponibitiza uma conta de acesso com todos estes privilégios dispo- niveis, com 0 propésito de o administrador gerenciar o sistema operacional. No sis- tema Unix existe a conta “root”, no MS Windows a conta “administrator” e no OpenVMS existe a conta “system” com este mesmo perfil. 5.2.3 ESPAGO DE ENDERECAMENTO (O espago de enderegamento é a dea de meméria pertencente ao processo onde instru- {Bes e dados do programa siio armazenados para execugao. Cada provesso possui seu proprio espaco de enderegamento, que deve ser devidamente protegido do acesso dos ‘demais processos. No Capitulo 9 — Geréncia de Meméria e no Capitulo 10 —Gerén- cia de Memoria Virtual serav apresentados diversos mecanismos de implementagao © administrag2o do espago de enderegamento. A Fig, 54 ilustra as caracterfsticas da estrutura de um processo. PID | registradores owner (UID) aes prioridade de execucéo registrador PC dota/hora de criagdo tempo de registrador SP processador quotas registrador privilégios de stotus Esposo de Enderegemento enderegos de meméria principal alocados Fig, 5.4 Caracteriticas da estrutura de um proceso. 5.2.4 BLOCO DE CONTROLE DO PROCESSO O processo é implementado pelo sistema operacional através de uma estrutura de da- dos chamada blaco de controle do processo (Process Control Block — PCB). A partir > instru- ssui seu sss0 dos -Gerén- cae Fig. 5.5 Bloco de Controle do Proceso (PCB). do PCB, o sistema operacional mantém todas as informagdes sobre 0 contexto de hardware, contexto de software e espaco de enderegamento de cada processo ig. 5.5). ‘Os PCBs de todos os processos ativos residem na memsria principal em uma dea ex- clusiva do sistema operacional. O tamanho desta dea, geralmente, é limitado por um. ardmetro do sistema operacional que permite especificar o nimero maximo de pro- ‘cessos que podem ser suportados simultaneamente pelo sistema. : A Fig. 5.6 exibe, a partir da execugdo do comando ps (process status), @ listagem de alguns dos processos existentes em uma estagao de trabalho com sistema operacional Linux. Diversas caracteristicas do contexto de software do processo so apresentadas. Por exemplo, a coluna PTD indica a identificagao do proceso, PRI indica a priorida- idor SP fps -1-a FS UID PID PPID C PRI NI ADDR Sz WCHAN TTY TIME CHD 45° 0 1 0 0 75 0 ~ 378 achedu 2? 00:00:04 init 18 0 2 10 75 0 - — Ocontex ? 00:00:00 kevente 15 0 3 10 94 19 = 0 keofei 2 00:00:00 ksoftizad/0 15° 0 6 10 8 0 - 0 bafius ? 00:00:00 baflush or 189 0 4 10°75 0 = 0 schedu ? 00:05:35 kewapd s 159 0 5 10 75 0 = 0 schedu ? 00:03:45 kscand 18 0 7 10 75 0 = 0 schedu ? 00:00:00 kupdated 189 0 8 10 8 0 - Ondthr? 00:00:00 ndrecoverya 150 0 21 1075 0 - end ? 0:05:40 kjournala 18 0 253 10 75 0 - end ? 0:00:00 kjournalé 18 0 254 10 75 0 - Oend ? 00:00:00 Kjournald 18 0 25 10 75 0 = Oend ? 00:55:28 kjournalé 158 0 579 10 75 0 = 399 schedu ? syslogd 58 0 58 10 75 0 - 383 dosys? Kloga 55 32 600 10 75 0 = 416 schedu? 58 29 619 1 0 8 0 - 416 schedu ? 18 0 631 1 0 75 0 = 393 schedu ? 55 0 702 10 75 0 = 917 sched? 00:00:30 55 0 716 10 75 0 | 539 schedu ? 00:00:00 58 0 74 1.0 75 0 = 398 schedu? 55 0 765 10 75 0 = 607 schedu ? ade da- Apatr Fig. 5.6 Visualzagso de processos no Linux. 72. | Arquitetura de Sistemas Operacionais dee TIME o tempo de utilizagao do processador. De forma semelhante, 6 posstvel vi sualizar os processos existentes em um sistema MS Windows utilizando o Gerenciador de Tarefas (Task Manager). ‘Toda a geréncia dos processos é realizada por intermédio de chamadas a rotinas do sistema operacional que realizam operag%es como criagio, alteracao de caracterfsti- cas, visualizagio, eliminagio, sincronizacao, suspensio de processos, dentre outras. 5.3 Estados do Processo Em um sistema multiprogramével, um processo no deve alocar exclusivamente a UCP, de forma que exista um compartihamento no uso do processador. Os processos pas- sam por diferentes estados a0 longo do seu processamento, em fungao de eventos ge- rados pelo sistema operacional ou pelo proprio proceso. Um processo ativo pode en- ccontrar-se em ts diferentes estado + Execusao (running) {Um proceso € dito no estado de execuedo quando esté sendo processado pela UCP. Em sistemas com apenas uma UCP, somente um processo pode estar se Up executado em umn dado instante de tempo. Os processos se altermam na wili- “agi do processador seguindo uma politica estabelecida pelo sistema opera cional. [Em sistemas com miltiplos processadores, existe a possibilidade de mais de um pro- ‘cesso ser cxecutado ao mesmo tempo. Neste tipo de sistema, também é possivel um mesmo processo ser executado simultaneamente em mais de uma UCP (processa- ‘mento paralelo). Pronto (ready) Um processo esté no estado de pronto quando aguarda apenas para ser executado, ( sistema operacional é responsiivel por determinar a ordem e os critérios pelos quais, (0s processos em estado de pronto devem fazer uso do processador. Este mecanismno conhecido como escalonamento. Em geral existem vérios processos no sistema no estado de pronto organizados em listas encadeadas. Os processos devem estar ordenados pela sua importincia, per~ mitindo que processos mais prioritérios sejam selecionados primeiramente para execugao (Fig. 5.7) Espera (wait) ‘Um processo no estado de espera aguarda por algum evento extemo ou por algum recutSo para prosseguir seu processamento, Como exemplo, podemos citar 0 térmi- no de uma opera de entrada/saida ou a espera de uma determinada data e/ou hora para continuar sua execucao. Em alguns sistemas operacionais, 0 estado de espera pode ser chamado de bloqueado (blocked). 0 sistema organiza os vérios processos no estado de espera também em listas cneadeadas. Em geral, 0s processos so separados em listas de espera associa. ddas a cada tipo de evento (Fig. 5.7). Nesse caso, quando um evento acontece, todos os processos da lista associada ao evento sio transferidos para 0 estado de pronto, sivel vi- rnciador tinas do cteristi- outras. :aUCP, s0s pas- ntos ge- rode en- do pela tar sen- ra utili- opera um pro- ivel um ocessa- cutado. 2s quais anismo dos em ia, per- tte para ontece, tado de Processo / 73 Fig, 5.7 Lista de PCBs nos estados de pronto e de espere, 5.4 Mudangas de Estado do Processo Um processo muda de estado durante seu processamento em funcdo de eventos originados por ele préprio (eventos voluniérios) ou pelo sistema operacional (eventos involuntérios). Basicamente, existem quatro mudangas de estado que podem ocorrer a um processo: * Pronto — Execucao ‘Ap6s acriagao de um processo, o sistema o coloca em uma lista de processos no estado Pronto ‘Um processo no estado de espera passa para o estado de pronto quando a operacio, solicitada é atendida ou o recurso esperado é concedido. Um processo no estado de espera sempre ters de passar pelo estado de pronto antes de poder ser novamente selecionado para execuco. Nio existe a mudanca do estado de espera para 0 estado de execuglo diretamente (Fig. 5.8c). * Execugao — Pronto Um processo em execugio passa para o estado de pronto por eventos gerados pelo sistema, como 0 término da fatia de tempo que 0 processo possui para Sua exe- cugio (Fig. 5.84). Nesse caso, 0 processo volta para a fila de pronto, onde aguarda por uma nova oportunidade para continuar seu processamento, ‘Um proceso em estado de pronto ou de espera pode nao se encontrar na meméria prin- cipal. Esta condiglo ocorre quando no existe espaco suficiente para todos os proces- Estado de Execosdo o> Estado de Espero stodo de Pronto doresidente a Fig. 5.9 Mudancas de estado do processo (2). Estado de Esperc Estado de Pronto pelo 8b). ende pel exe- arda Processo / 75 sos na meméria principal e parte do contexto do proceso é levado para meméria se- cundaria, A técnica conhecida como swapping, na condicao citada, retira processos da mem6ria principal (swap out) e 0s traz de volta (sivap in) seguindo critérios de cada sistema operacional. Neste caso, os processos em estados de espera e pronto podem estar residentes ou nao residentes (oufswapped) na meméria principal (Fig. 5.9). 5.5 Criagao e Eliminacao de Processos Processos sto criados ¢ eliminados por motivos diversos. A criagio de um proceso ‘corre a partir do momento em que o sistema operacional adiciona um novo PCB A sua estrutura ¢ loca um espago de enderegamento na meméria para uso. A partir da cria- 40 do PCB, o sistema operacional jé reconhece a existéncia do proceso, podendo € associar programas ao seu contexto para serem executados. No caso da ‘de um proceso, todos os recursos associados ao processo sao desalocados. € 0 PCE eliminado pelo sistema operacional. Além dos trés estados apresentados anteriormente para o processo, a maioria dos sis- temas operacionais estabelece para os momentos de criacao ¢ eliminagio de um pro- cesso dois estados adicionais. A Fig. 5.10 ilustra as mudancas de estado do processo considerando estes dois novos estados. Estado de Execupio Estode de Término Fig, 5.10 Mudancas de estado do processo (3). * Criagdo (new) Um processo é dito no estado de criagdo quando o sistema operacional jé criou um novo PCB, porém ainda no pode colocé-0 na lista de processos do estado de pron- to, Alguns sistemas operacionais limitam o niimero de processos ativos em fungio, dos recursos disponiveis ou de desempenho. Esta limitacdo pode ocasionar que pro- ceessos criados permanegam no estado de criagdo até que possam passar para ativos. No item 5.8 s2o deseritas diferentes maneiras de criago de processos. 76 | Arquitetura de Sistemas Operacionais * Terminado (exit) Um processo no estado de terminado nao poderé ter mais nenhum programa executa- do no seu contexto, porém o sistema operacional ainda mantém suas informagies de controle presentes em meméria. Um processo neste estado ndo € considerado mais ativo, mas como o PCB ainda existe, o sistema operacional pode recuperar informa- .90es sobre a contabilizacdo de uso de recursos do processo, como 0 tempo total do rocessador. Apés as informagbes serem extraidas, 0 processo pode deixar de existir. 0 término de processo pode ocorrer por razes como: + tétmino normal de execugao; + eliminagao por um outro proceso; + eliminagdo forcada por auséncia de recursos disponiveis 5.6 Processos CPU-bound ¢ I/O-bound Fs uc Processos podem ser classificados como CPU-bound ou /O-bound de acordo com a utilizagdo do processador e dos dispositivos de E/S. Um processo € definido como CPU-bound (ligado a UCP) quando passa a maior parte do tempo no estado de execucao, utilizando o processador, ou pronto (Fig. 5.1 1a). Esse tipo de processo realiza poucas operagGes de leitura e gravagaio, e € encontrado em apli- cages cientfficas que efetuam muitos célculos. Um processo € classificado como 1/0-bound (ligado A E/S) quando passa a maior parte do tempo no estado de espera, pois reatiza um elevado niimero de operacées de E/S (Fig, 5.11b), Esse tipo de processo € encontrado em aplicagées comerciais, que se ba- seiam em leitura, processamento e gravaciio. Os processos interativos também so bons exemplos de processos /O-bound, pela forma de comunicagdio entre 0 usuario € o sis tema, normalmente lenta, devido a utilizago de terminais es ue tempo tempo {el CPU-bound (6)1/O-bound Fig. 5.11 Processos CPU-bound x /0-bound 5.7 Processos Foreground e Background ‘Um proceso possui sempre pelo menos dois canais de comunicagio associados a sua eestrutura, pelos quais sao realizadas todas as entradas e saidas de dados ao longo do Processo / 77 seu processamento. Os canais de entrada (input) e saida (output) de dados podem estar associados a terminais, arquivos, impresoras e até mesmo a outros processos. executa- acdes de ij ; a a ae Um processo foreground € aquele que permite a comunicagao direta do usuario com 0 i mals: processo durante o seu processamento. Neste caso, tanto o canal de entrada quanto 0 informe de safda estio associados a um terminal com (eclado, mouse e monitor, permitindo, assim, a interagZo com o usudrio (Fig, 5.12a). O processamento interativo tem como eexistir. base processos foreground. ‘Um processo background é aquele onde nao existe a comunicagao com 0 usuario du- rante 0 seu processamento (Fig. 5.12b), Neste caso, 05 canais de E/S ndo estiio associ- ados a nenhum dispositivo de E/S interativo, mas em geral a arquivos de E/S. O pro- cessamento do tipo batch € realizado através de processos background. (o} Proceso Foreground ocom a «ft B= GG) >a iorpane ‘de E/S (Proce Bockgrownd ise ba- dio bons Cc) eotrde 1eosis- | —s Fig. 5.12 Processos foreground e background. E possivel associar o canal de saida de um processo ao canal de entrada de um outro processo. Neste caso dizemos que existe um pipe ligando os dois processos. Se um Processo A gera uma listagem ¢ o Processo B tem como fungio ordend-la, basta asso- ciar 0 canal de saida do proceso A ao canal de entrada do proceso B (Fig. 5.13). at 5.8 Formas de Criagao de Processos Um processo pode ser criado de diversas maneiras. A seguir, sto apresentadas as trés principais formas de criagio de processos: * Logon Interativo No logon interativo 0 usuério, por intermédio de um terminal, fornece ao sistema um, ‘nome de identificagao (username ou logon) ¢ uma senha (password). O sistema ope- Ws a sua racional autentica estas informagdes verilicando se esto corretamente cadastra- ngo do das no arquivo de usuérios. Em caso positivo, um provesso foreground € criado, pos- 78 | Arquitetura de Sistemas Operacionals Seta do a ina Fig. 5.13 Pipe sibilitando ao usudrio interagir com o sistema utilizando uma linguagem de coman- dos, Na Fig. 5.14 € apresentado um exemplo de logon interativo em um sistema Unix, Fig. 5.14 Tela de logon intrativo. Conforme apresentado anteriormente, 0 arquivo de usudrios & um arquivo do siste- ‘ma operacional onde sto armazenados todos 0s usuirios autorizados ater acesso 20 sistema, Para cada usudrio existe um registro com informagdes como, por exemplo, usename, senha, quotas privilégios. Apenas o administrador do sistema pode c1 ar, modificar e eliminar registros no arquivo de usuérios. Grande parte das informa- {gGes do contexto de software de um processo provém do arquivo de usudtios. © processo também pode ser eliminado interativamente quando 0 usuério realiza 0 procedimento de saida do sistema, também chamado logout ou logoff, digitando um ‘comando da linguagem de comandos para encerramento da sessao. ad oman- Unix. * Via Linguagem de Comandos Um usustio pode, a partir do seu processo, criar novos processos por intermédio de comandos da linguagem de comandos. O principal objetivo para que um usudtio crie diversos processos € a possibilidade de execugao de programas concorrente- mente. Por exemplo, no sistema OpenVMS o comando spawn permite executar uma otra tarefa de forma concorrente. Esta é uma maneira de criar um processo a partir de outro processo jé existente, O processo criado pode ser foreground ou background, dependendo do comando de criagdo utilizado. * Via Rotina do Sistema Operacional Um proceso pode ser criado a partir de qualquer programa executével com o uso de rotinas do sistema operacional. A criagao deste processo possibilita a exe- cugao de outros programas concorrentemente ao programa chamador. A rotina de criagio de processos depende do sistema operacional e possui diversos pari metros, como nome do proceso a ser criado, nome do programa executavel que sera executado dentro do contexto do processo, prioridade de execucao, estado do proceso, se 0 proceso é do tipo foreground ou background ete. ‘Como exemplos de rotinas do sistema para a criacdo de processos temos sys$createprocess no OpenVMS, fork no Unix e CreateProcess no MS Windows. No trecho de programa em Delphi, a seguir, desenvolvido para 0 MS Windows, hé um exemplo da criagtio de um processo, sendo que o executével 60 programa NOTEPAD.EXE (bloco de notas). Neste caso, a API abrird uma ja- nela para a execugio concorrente do bloco de notas independente do programa chamador. procedure TForml.criaProcesso(Sender: Tobject) status: boolean; si: STARTUPINFO; pi: PROCESS_INFORMATION; Handle: THandle; Nomerxe: PChar: begin WomeExe : PChar(‘\WINNT\NOTEPAD.EXE’ Fillchar(si, Size0f(si), 0); sic t= Sizeof(si)y status := CreateProcess(Nomezxe, nil, nil, nil, TRUE, NORMAL_PRIORITY CLASS, nil, nil, si, pi); if (not status) then MessageBox (Handle, ‘Erro na criagao do proceso’, nil, MB_OK); end; No exemplo do procedimento TForm} .CriaProcesso, o primeito parémetro da API CreateProcess indica o nome do executive, ou seja, no exemplo sera criado um processo para a execugo do programa NOTEPAD.EXE. O sexto pard- ‘metro especifica a prioridade do processo, o nono dé informagSes para a criagio do proceso ¢ o iiltimo retoma informagées sobre 0 proceso criado. A instrugio se- guinte & rotina CreateProcess testa se 0 processo foi criado com sucesso. 5.9 Processos Independentes, Subprocessos e Threads Processos independentes, subprocessos ¢ threads so maneiras diferentes de implementar a concorréncia dentro de uma aplicagao. Neste caso, busca-se subdividir 80 / Arquitetura de Sistemas Operacionais, © cédigo em partes para trabalharem de forma cooperativa. Considere um banco de dados com produtos de uma grande loja, onde vendedores fazem freqiientes consultas. Neste caso, a concorréncia na aplicagao proporciona um tempo de espera menor entre as consultas, melhorando o desempenho da aplicacdo e beneticiando os usuérios. (O uso de processos independentes & a maneira mais simples de implementar a concorrén- cia em sistemas multiprogramdveis, Neste caso nfo existe vinculo do processo criado com. co seu criador. A criagdio de um processo independente exige a alocaco de um PCB, possu- indo contextos de hardware, contextos de software ¢ espagos de enderegamento proprios. Subprocessos so processos criados dentro de uma estrutura hierrquica. Neste modo, 0 processo criador & denominado processo-pai, enquanto 0 novo processo é chamado de subprocesso ou processo-filho. O subprocesso, por sua vez, pode criar outras estru- turas de subprocessos. Uma caracteristica desta implementacao € a dependéncia exis- tente entre o processo criador e 0 subprocesso, Caso um processo-pai deixe de existir, 1s snhprocesses suhordlinadlos so antomaticamente eliminados. De moda semethante 408 processos independentes, subprocessos possuem seu proprio PCB. A Fig. 5.15 ilustra cinco processos em uma estrutura hierdrquica, cada qual com seu préprio contexto de hardware, contexto de software e espago de enderecamento. Processo A en Fig. 5.15 strtura de pro: ae a cei e subprocessos. ‘Além da dependéncia hierdrquica entre processos e subprocessos, uma outra caracte- ristica neste tipo de implementagao € que subprocessos podem compartilhar quotas com ‘ processo-pai. Neste caso, quando um subprocesso é criado o processo-pai cede parte de suas quotas ao processo-filho, 0 uso de processos independentes e subprocessos no desenvolvimento de aplicagdes concorrentes demanda consumo de diversos recursos do sistema. Sempre que um novo, processo 6 criado, 0 sistema deve alocar recursos (contexto de hardware, contexto de agdes novo uode Processo / 81 software e espaco de enderegamento), consumnindo tempo de UCP neste trabalho. No ‘momento do término dos processos, o sistema operacional também dispensa tempo para desalocar recursos previamente alocados. Outro problema é a comunicacao e a sinero- nizagdo entre processos consideradas pouco eficientes, visto que cada processo possui seu proprio espaco de enderecamento, (© conceito de thread foi introduzido na tentiva de teduzr 0 tempo gasto em ctiago, climinagao e troca de contexto de processos nas aplicagdes concorrentes, bem como ‘economizar recursos do sistema como um todo. Em um ambiente multithread, um tnico processo pode suportar mtltiplos threads, cada qual associado a uma parte do cédigo da aplicagao (Fig. 5.16). Neste caso ndo é necessério haver diversos processos para a implementagdo da concorréncia. Threads compartilham o processador da mesma ma- neira que um processo, ou seja, enquanto um thread espera por uma operagio de F/S, outro thread pode ser executado. Contesto Contexto deHardware | de Hardware Contexto de Software Thread 1 Thread 2 Thread 3 Espage de Enderegamento Fig. 5.16 Processo multthread. Cada thread possui seu préprio contexto de hardware, porém compartilha o mesmo con- texto de software e espago de enderegamento com os demais threads do processo. O compartilhamento do espaco de enderecamento permite que a comunicacio de threads, dentro de um mesmo processo seja realizada de forma simples e répida. Este assunto 6 ‘mais bem detalhado no Capitulo 6 — Thread. 5.10 Processos do Sistema Operacional O conceito de processo, além de estar associado a aplicagées de usudrios, pode tam- 'bém ser implementado na propria arquitetura do sistema operacional. Como visto no Capitulo 4 — Estrutura do Sistema Operacional, a arquitetura microkernel implementa 182 | Arquitetura de Sistemas Operacionais 5.11 Sinais © uso intensivo de processos que disponibilizam servigos para processos das aplica- es e do proprio sistema operacional. Quando processos sao utilizados para a implementago de servigos do sistema, esta- ‘mos retirando c6digo do seu niicleo, tornando-o menor e mais estével. No caso de um. ‘ou mais servigos ndo serem desejados, basta no ativar os processos responsiveis, 0 ue permitiré liberar meméria para os processos dos usuarios. ‘A seguir, so apresentados alguns servigos que o sistema operacional pode implementar através de processos: auditoria e seguranca; servigos de rede; contabilizacao do uso de recursos; contabilizagao de erros; eréncia de impressio; geréncia de jobs ba temporizacio; comunicagdo de eventos; interface de comandos (shel!) Sinais 6 um mecanismo que permite notificar processos de eventos gerados pelo siste- ‘ma operacional ou por outros processos. O uso de sinais € fundamental para a geréncia de processos, além de possibilitar a comunicagdo e sincronizagao entre processos. Um exemplo de uso de sinais € quando um usuério utiliza uma sequéncia de caracteres do teclado, como [Ctrl-C], para interromper a execugao de um programa, Neste caso, o sistema operacional gera um sinal a partir da digitagdo desta combinacao de teclas, sinalizando ao processo a ocorréncia do evento, No momento que 0 processo identifi- ca.a chegada do sinal, uma rotina especifica de tratamento é executada (Fig. 5.17). Fig. 5.17 Uso de sinas Sinais podem ser utilizados em conjunto com temporizadores, no intuito de sinalizar a0 processo algum evento associado ao tempo. Como exemplo, podemos citar a situa- ‘do em que um processo deve ser avisado periodicamente para realizar alguma tarefa, como monitorar uma fila de pedidos. Depois de realizada a tarefa, o processo deve voltar esperar pelo préximo sinal de temporizagio. aplica- 1 estar deum veis, 0 mentar alizar situa- arefa, voltar (Big. 5.18 Sinai, interrupgdes © 7 Processo / 83 A maior parte dos eventos associados a sinais so gerados pelo sistema operacional ou pelo hardware, como a ocorréncia de excegdes, interrupgdes geradas por terminais, li mites de quotas excedidos durante a execucdo dos processos e alarmes de tempo. Em outras situagdes, os eventos sto gerados a partir de outros processos com 0 propésito de sincronizar suas execugdes. A geragio de um sinal ocorre quando o sistema operacional, a partir da ocorréncia de eventos s{ncronos ou ass{ncronos, notifica ao processo através de bits de sinalizagao localizados no seu PCB. Um processo nao responde instantaneamente a um sinal. Os sinais ficam pendentes até que 0 processo seja escalonado, quando entilo serio trata- dos. Por exemplo, quando um proceso & eliminado o sistema ativa 0 bit associado a este evento, O processo somente sera exclufdo do sistema quando for selecionado para execu. Neste caso, € possfvel que o processo demore algum tempo até ser elimina- do de fato, (© tatamento de um sinal é muito semethante ao mecanismo de interrupyées. Quando um sinal 6 tratado, 0 contexto do processo é salvo e a execuca0 desviada para um c6- digo de tratamento de sinal (signal handler), geralmente no nticleo do sistema. ApOs a execugdo do tratador de sinais, o programa pode voltar a ser processado do ponto onde foi interrompido. Em certas implementages, 0 proprio provesso pode tratar o sinal através de um tratador de sinais definido no e6digo programa. & possivel também que uum processo bloqueie temporariamente ou ignore por completo alguns sinais (O mecanismo de sinais assemelha-se ao tratamento de interrupgdes e excegdes vis- tos no Capitulo 3— Concorréncia, porém com propSsitos diferentes, O sinal esté para © processo assim como as interrupgies e excegdes esto para o sistema operacional (Fig. 5.18).

Você também pode gostar