Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Captulo 5 Processo
1. Defina o conceito de processo.
Um processo pode ser definido como o ambiente onde um programa executado. Este ambiente, alm das informaes sobre a execuo, possui tambm o quanto de recursos do sistema cada programa pode utilizar, como o espao de endereamento, tempo de processador e rea em disco. (V) Um processo basicamente um programa em execuo. (V) Processos podem ser definidos como qualquer entidade independente que compete por recursos da mquina; (V) Associado a cada processo, est o seu espao de endereamento. (F) Um processo um programa em execuo que compartilha com outros processos o seu espao de endereamento, suas variveis globais e arquivos abertos.
3. possvel que um programa execute no contexto de um processo e no execute no contexto de um outro? Por que?
Sim, pois a execuo de um programa pode necessitar de recursos do sistema que um processo pode possuir enquanto outro no.
8. Como o sistema operacional implementa o conceito de processo? Qual a estrutura de dados indicada para organizar os diversos processos na memria principal?
O processo implementado pelo sistema operacional atravs de uma estrutura de dados chamada bloco de controle do processo (Process Control Block PCB). A partir do PCB, o sistema operacional mantm todas as informaes sobre o contexto de hardware, contexto de software e espao de endereamento de cada processo. (V) Cada processo tem seu prprio PCB (bloco de controle de processo) no qual constam informaes importantes, como prioridade, rea de armazenamento de dados e seu prprio nmero de identificao;
10. D um exemplo que apresente todas as mudanas de estado de um processo, juntamente com o evento associado a cada mudana.
Livre.
11. Explique a diferena entre processos foreground e background. (no deu tempo de d)
Um processo foreground aquele que permite a comunicao direta do usurio com o processo durante o seu processamento. Neste caso, tanto o canal de entrada quanto o de sada esto associados a um terminal com teclado, mouse e monitor, permitindo, assim, a interao com o usurio. Um processo background aquele onde no existe a comunicao com o usurio durante o seu processamento. Neste caso, os canais de E/S no esto associados a nenhum dispositivo de E/S interativo, mas em geral a arquivos de E/S.
12. Qual a relao entre processo e a arquitetura microkernel? (no deu tempo)
A arquitetura microkernel baseia-se na utilizao de processos em modo usurio para executar diversas funes relativas ao sistema operacional, como gerncia de memria e escalonamento.
14. Justifique com um exemplo a frase o sinal est para o processo assim como as interrupes e excees esto para o sistema operacional.
Quando ocorre uma diviso por zero, por exemplo, o sistema operacional notificado do problema atravs de uma exceo. Por sua vez, o sistema deve notificar ao processo que gerou o problema atravs de um sinal.
O SO interrompe a execuo do processo, salva seu estado de execuo (contexto), seleciona um processo pronto (escalonamento) e restaura seu estado de execuo. b) um processo termina sua execuo; O SO remove a entrada referente a este processo da tabela de processo e libera todos os recursos (memria, buffers, arquivos abertos) alocados ao processo. O processo tambm notifica o processo pai atravs de um sinal. c) um processo tem sua execuo bloqueada (por exemplo, devido a uma operao de entrada/sada); Idem ao item a). O processo desbloqueado (tornando-se pronto) quando o motivo do bloqueio deixa de existir. d) um processo executa uma instruo ilegal (por exemplo: diviso por zero). O SO envia um sinal correspondente a este evento que, se no tratado, causa o trmino do processo com a liberao dos recursos a ele alocados. (V)Um processo com estado bloqueado significa que este no pode, enquanto neste estado, concorrer pela CPU; (F)Quando um processo, que estava bloqueado, volta a competir por recursos passa ento, para o estado executando; (V)Um processo com estado suspenso, significa que este no pode, enquanto neste estado, concorrer pela CPU. (F)O Sistema Operacional tem sempre a preocupao direta com o usurio, dando sempre uma menor importncia aos processos em execuo; (V)Quando dois ou mais processos disputam um determinado recurso, ocorre um fato chamado de Concorrncia; (F)Manter uma boa Sincronizao significa que o Sistema Operacional ir sempre garantir uma mxima ocorrncia de conflitos, porm sem garantir a individualidade dos processos em execuo. 1. Sejam as afirmativas abaixo: (1,0 ponto) I) Um processo com estado pronto significa que j foi submetido ao sistema e j foi definitivamente concludo; II) Quando, em um processo, h uma solicitao de E/S, neste momento o processo entrar em estado de espera; III) Quando um processo conclui a solicitao de E/S, o sistema muda seu estado de espera para pronto. IV) Quando um processo, que estava bloqueado, volta a competir por recursos passa ento, para o estado executando. Das afirmativas mostradas anteriormente, esto totalmente corretas: a) II, III e IV b) I, II e III c) II e III d) I, II, III e IV 1. Segundo a Microsoft, o Windows 95 um sistema operacional grfico de 32 bits, com multitarefa preemptiva e plug and play que aproveita melhor os recursos das mquinas a partir do 386. O termo multitarefa preemptiva refere-se ao sistema operacional que: (1,0 ponto) a) faz cooperao com os programas aplicativos durante a execuo dos mesmos. b) fornece aos processos que esto sendo executados uma prioridade, e mantm o controle do tempo gasto com qualquer processo antes de passar para o processo seguinte. c) faz o escalonamento entre processos considerando apenas o tempo de processamento. d) faz o escalonamento entre os processos considerando apenas a prioridade dos mesmos. e) decide, automaticamente, qual o processo a ser executado, caso ocorra deadlock entre vrios processos.
2. Descreva as aes tomadas por um kernel para a troca de contexto entre os processos. (2,0 pontos) Em geral, o sistema operacional precisa salvar o estado do processo correntemente em execuo e restaurar o estado do processo escalonado para ser executado em seguida. Salvar o estado de um processo normalmente inclui os valores de todos os registradores da CPU, alm da alocao de memria. As trocas de contexto tambm
precisam realizar muitas operaes especficas da plataforma, incluindo o esvaziamento de caches de dados e instrues.
3. Qual a finalidade da estrutura PCB para controlar a execuo de um processo? (1,5 ponto) A partir do PCB, o SO implementa o conceito de processo e mantm as informaes sobre o contexto de hardware o contexto de software e o espao de endereamento de cada processo.
Thread
4. Fornea dois exemplos de programao em que o uso de multithreads no oferece melhor desempenho do que uma soluo com uma nica thread. (1,0 ponto) (1) Qualquer tipo de programa seqencial no um bom candidato para usar threads. Um exemplo disso um programa para calcular a devoluo de imposto de renda individual. (2) Outro exemplo um programa de shell, como o C-shell. Esse tipo de programa precisa monitorar de perto seu prprio espao de trabalho, como arquivos abertos, variveis de ambiente e diretrio de trabalho atual. 5. So vantagens de utiliza threads no espao de usurio, exceto: (1,0 ponto) (no visto em sala de aula) a) Nenhuma modificao necessria no kernel. b) O sistema operacional escalona a thread. c) O escalonamento pode ser especfico para a aplicao. d) A criao e o gerenciamento das threads so mais eficientes. e) Maior portabilidade da aplicao. 6. Fornea dois exemplos de programao em que o uso de multithreads oferece melhor desempenho do que uma soluo com nica thread. (2,0 pontos) (Exemplo 1) Um servidor Web que atende a cada requisio em uma thread separada. (Exemplo 2) Uma aplicao paralelizada, como uma multiplicao de matriz em que diferentes partes da matriz podem ser atuadas paralelo. (Exemplo 3) Um programa GUI interativo, como um depurador em que uma thread usada para monitorar a entrada do usurio, outra thread representa a aplicao em execuo e uma terceira thread monitora o desempenho. (F)Os benefcios da programao multithread so: responsividade, j que possvel um programa continuar funcionando mesmo com parte dele bloqueado; compartilhamento de recursos (memria e
processamento); economia, pois threads compartilham recursos do processo ao qual pertencem; e a utilizao de arquiteturas multi-processadas, uma vez que as threads podem executar em paralelo, nos diferentes processadores.
Captulo 6 Thread
1. Como uma aplicao pode implementar concorrncia em um ambiente monothread?
Atravs de processos independentes e subprocessos.
4. Quais as vantagens e desvantagens do compartilhamento do espao de endereamento entre threads de um mesmo processo?
Como threads de um mesmo processo compartilham o mesmo espao de endereamento, no existe qualquer proteo no acesso memria, permitindo que um thread possa alterar facilmente dados de outros. Para que threads trabalhem de forma cooperativa, fundamental que a aplicao implemente mecanismos de comunicao e sincronizao entre threads, a fim de garantir o acesso seguro aos dados compartilhados na memria. Por outro lado, o compartilhamento do espao de enderemento extremamente simples e rpido.
cooperativa. Cada camada implementa seu escalonamento de forma independente, porm trocando informaes quando necessrio.
7. Como o uso de threads pode melhorar o desempenho de aplicaes paralelas em ambientes com mltiplos processadores?
Para obter os benefcios do uso de threads, uma aplicao deve permitir que partes diferentes do seu cdigo sejam executadas em paralelo de forma independente. O uso de uma arquitetura com mltiplos processasdores beneficia a concorrncia entre os threads com a possibilidade do paralelismo de execuo entre processadores.
Um thread, ou linha de execuo em portugus, uma forma de um processo dividir a si mesmo em duas ou mais tarefas que podem ser executadas simultaneamente. As threads da categoria _______________ so suportadas pela aplicao que est sendo desenvolvida, sem conhecimento do ncleo do sistema operacional, e, geralmente so implementadas por pacotes de rotinas por uma determinada biblioteca de uma linguagem de programao. Assinale a alternativa que preenche corretamente a lacuna acima. (1,0 ponto) a) User-Level Thread b) Kernel-Level Thread c) Time-Sharing d) Fiber e) Multithreading
concorrente da UCP por diversos programas sendo implementada de maneira que, quando um programa perde o uso do processador e depois retorna para continuar o processamento, seu estado deve ser idntico ao do momento em que foi interrompido. O programa dever continuar sua execuo exatamente na instruo seguinte quela em que havia parado, aparentando ao usurio que nada aconteceu.
4. O que so eventos sncronos e assncronos? Como estes eventos esto relacionados ao mecanismo de interrupo e exceo?
Eventos sncronos so resultados direto da execuo do programa corrente. Tais eventos so previsveis e, por definio, s podem ocorrer um nico de cada vez. Eventos assncronos no so relacionados instruo do programa corrente. Esses eventos, por serem imprevisveis, podem ocorrer mltiplas vezes, como no caso de diversos dispositivos de E/S informarem ao processador que esto prontos para receber ou transmitir dados. Uma interrupo um evento assncrono enquanto uma exceo um evento sncrono.
6. Qual a vantagem da E/S controlada por interrupo comparada com a tcnica de polling?
Na E/S controlada por interrupo, as operaes de E/S podem ser realizadas de uma forma mais eficiente. Em vez de o sistema periodicamente verificar o estado de uma operao pendente como na tcnica de polling, o prprio controlador interrompe o processador para avisar do trmino da operao. Com esse mecanismo, o processador, aps a execuo de um comando de leitura ou gravao, permanece livre para o processamento de outras tarefas.
atividades. Posteriormente, o sistema operacional encarrega-se em direcionar o contedo do arquivo de spool para a impressora.
10. Em um sistema multiprogramvel, seus usurios utilizam o mesmo editor de textos (200 Kb), compilador (300 Kb), software de correio eletrnico (200 Kb) e uma aplicao corporativa (500 Kb). Caso o sistema no implemente reentrncia, qual o espao de memria principal ocupado pelos programas quando 10 usurios estiverem utilizando todas as aplicaes simultaneamente? Qual o espao liberado quando o sistema implementa reentrncia em todas as aplicaes?
Sem reentrncia, cada usurio teria sua cpia do cdigo na memria totalizando 10 x (200 Kb + 300 Kb + 200 Kb + 500 Kb) = 12.000 Kb. Caso a reentrncia seja implementada, apenas uma cpia do cdigo seria necessria na memria principal (200 Kb + 300 Kb + 200 Kb + 500 Kb) totalizando 1.200 Kb. Um total de 10.800 Kb seriam liberados da memria principal.
Escalonamento
(V)Um mtodo de escalonamento de processos deve levar em considerao, entre outros aspectos, a produo, a capacidade de resposta, a consistncia e a ociosidade do processador; (V)Em um sistema Real Time o escalonamento deve priorizar o atendimento imediato da solicitao, sendo a preocupao maior sempre com a rapidez da resposta do sistema. (V)Um mtodo de escalonamento de processos deve levar em considerao, entre outros aspectos, a produo, a capacidade de resposta, a consistncia e a ociosidade do processador. (V)Em um sistema Real Time o escalonamento deve priorizar o atendimento imediato da solicitao, sendo a preocupao maior sempre com a rapidez da resposta do sistema. (F) O escalonamento de processos pode ser apenas de alto ou baixo nvel; (F) H vrias estratgias de escalonamento. Todas no do importncia ao tempo em que o processo permanece em execuo. (V) Os mtodos de escalonamento podem ser no preemptivos e preemptivos. (F) O escalonamento por revezamento uma abordagem puramente no preemptiva (V) No escalonamento por revezamento, a definio do quantum fundamental para manuteno da boa performance do sistema. Um quantum errado pode levar a estagnao de processos; (V) Teoricamente, dois processos, submetidos ao mesmo tempo em sistemas com abordagens diferentes, sendo uma revezamento e a outra FIFO, acredita-se que o sistema com abordagem FIFO poder concluir mais rpido. (V)O escalonador de processos classificado como de longo prazo (long term scheduler) ou escalonador de tarefas executado com menos freqncia que o escalonador de curto prazo (short term scheduler) ou escalonador de CPU; e ainda controla o grau de multiprogramao no sistema. (F)O estado de um processo definido de acordo com a sua atividade corrente, em: novo (new) quando est sendo criado, executando (running) quando em execuo, pronto (ready) quando est esperando algum evento especfico; e terminado (terminated) ao final de sua execuo. (V)No Unix, um novo processo criado a partir da chamada de sistemas fork( ) - que consiste em uma cpia do espao de endereos do processo-pai. O processo pai, por sua vez, comunica-se com seu processo-filho por meio do uso do identificador de processo (PID Process Identifier) retornado.
Muitos algoritmos de escalonamento de CPU so parametrizados. Por exemplo, o algoritmo RR (Revezamento) requer um parmetro para indicar a fatia de tempo. As mltiplas filas com realimentao exigem parmetros para definir o nmero de filas, os algoritmos de escalonamento para cada fila, os critrios usados para mover processos entre filas, e assim por diante. Esses algoritmos so, na realidade, conjuntos de algoritmos (por exemplo, o conjunto de algoritmos RR para todas as fatias de tempo, e assim por diante). Um conjunto de algoritmos pode incluir outro (por exemplo, o algoritmo FIFO o algoritmo RR com um quantum de tempo infinito). Que relao (se houver alguma) permanece entre os seguintes pares de conjuntos de algoritmos? a) Prioridade e SJF b) Mltiplas Filas com Realimentao e FIFO c) Prioridade e FIFO d) RR e SJF A) A tarefa mais curta tem a prioridade mais alta. b) O menor nvel de MFQ FIFO c) FIFO oferece prioridade mais alta para a tarefa que existe h mais tempo d) Nenhuma 9. Cinco jobs A, B, C, D e E, em batch, chegam ao computador com 1 segundo de intervalo entre eles. Seus tempos de processamento so estimados em 10, 7, 3, 4 e 5 segundos de CPU,
respectivamente. Sendo round-robin a poltica de escalonamento utilizada, com um quantum de 1 segundo. O tempo mdio de turnaround desses processos (ignorando overheads de troca de contexto e interrupes e assumindo que um job recm-chegado colocado no incio da fila, ou seja, na frente dos outros) : (1,0 ponto)
a) b) c) d) e)
3. Suponha que os seguintes processos cheguem para execuo nos momentos indicados. Cada processo ser executado pela quantidade de tempo indicada. Ao responder as perguntas, use o escalonamento no-preemptivo, e baseie todas as decises nas informaes que voc tem no momento em que a deciso deve ser tomada. (1,0 ponto) Processo P1 P2 P3 Tempo de chegada 0,0 0,4 1,0 Tempo de burst 8 4 1
a) Qual o turnaround mdio para esses processos com o algoritmo de escalonamento FCFS? 10,53. b) Qual o turnaround mdio para esses processos com o algoritmo de escalonamento SJF? 9,53. 4. Considere o seguinte algoritmo de escalonamento por prioridade preemptiva, baseado em prioridades alteradas dinamicamente. Nmeros de prioridade maiores implicam em prioridade mais alta. Quando um processo est esperando pela CPU (na fila de prontos, mas no em execuo), sua prioridade muda a uma taxa ; quando est executando, sua prioridade muda a uma taxa . Todos os processos recebem uma prioridade 0 quando entram na fila de prontos. Os parmetros e podem ser definidos para dar muitos algoritmos de escalonamento diferentes. Qual o algoritmo que resulta quando > > 0? (0,5 ponto) FIFO. 5. (1,5 ponto) Considere uma aplicao que utilize uma matriz na memria principal para comunicao entre vrios processos concorrentes. Que tipo de problema pode ocorrer quando dois ou mais processos acessam uma mesma posio da matriz? Caso no haja uma gerncia no uso concorrente dos recursos compartilhados, inconsistncias nos dados podem ocorrer. Como seria possvel resolver os problemas decorrentes do compartilhamento da matriz utilizando o conceito de excluso mtua? Garantindo na aplicao que somente um nico processo pode estar acessando a matriz por vez.
6. (1,4 ponto) Qual o significado do termo espera ocupada? A espera ocupada ocorre quando um processo est realizando um loop enquanto espera a ocorrncia de um evento externo. Ela chamada espera ocupada porque o processo normalmente est em um loop tipo while(true); Que outros tipos de espera existem em um sistema operacional? Existem outros exemplos de espera ocupada em um sistema operacional: esperar at que a E/S esteja disponvel, esperar at que um semforo seja liberado etc. A espera ocupada pode ser completamente evitada? Explique sua resposta. Sim, a espera ocupada pode ser evitada por meio de uma primitiva de sincronismo, como um semforo ou varivel de condio. 10. Considere um sistema operacional com escalonamento por prioridades onde a avaliao do escalonamento realizada em um intervalo mnimo de 5ms. Neste sistema, os processos A e B competem por uma nica CPU. Desprezando os tempos de processamento relativo s funes do sistema operacional, a tabela a seguir fornece os estados dos processos A e B ao longo do tempo, medido em intervalos de 5ms (E = Executando; P = Pronto e W = Espera). O processo A tem menor prioridade que o processo B. (2,0 pontos) 00-04 P E 5054 P W 05-09 P E 55-59 E P 10-14 E W 60-64 P E 65-69 P E 15-19 E W 70-74 E W 20-24 E P 75-79 E W 25-29 P E 80-84 W P 30-34 P E 85-89 W E 00-94 P E 35-39 P E 9599 E 40-44 E W 100105 E 45-49 W W
Processo A Processo B
Processo A Processo B
e) Em que tempos A sofre preempo? Instantes: 24-25 e 59-60. f) Em que tempos B sofre preempo? Nunca, pois o processo B possui maior prioridade do que o processo A. g) Refaa a tabela anterior supondo que o processo A mais prioritrio que o processo B. Sugesto: 00-04 E P 5054 W E 05-09 E P 55-59 P E 10-14 E P 60-64 E W 65-69 E W 15-19 E P 70-74 W 20-24 W E 75-79 P 25-29 P E 80-84 E 30-34 E W 85-89 E 00-94 W 35-39 E W 9599 P 40-44 E P 100105 E 45-49 W E
Processo A Processo B
Processo A Processo B