Você está na página 1de 9

1 - INTRODUO 1- Para que serve um SO? Que recursos gere?

1- Um sistema operativo serve para gerir recursos e fornecer uma interface de acesso. Gere recursos do tipo lgico permitindo abstraco dos recursos fsicos. 2- Existem 2 interfaces. Quais? 2- As duas interfaces so: interface operacional (comandos) e biblioteca

de funes

do SO.

3- Qual a misso so SO? 3- A misso do SO criar uma mquina virtual sobre a fsica que oferea recursos lgicos bsicos necessrios ao desenvolvimento de aplicaes, podendo assim ser independente do hardware onde se executa. 4- Quais as desvantagens de uma alternativa ao SO? 4- O esforo de programao poderia ser muito grande, um conjunto significativo de funes seria repetido, cada aplicao poderia optimizar o seu desempenho mas globalmente a mquina ficaria subaproveitada, no seria possvel existirem polticas globais de segurana e tolerncia a falhas. 5- Quais os critrios de qualidade do SO? Descreva-os. 5- Os critrios de qualidade so: - Desempenho: gesto eficiente dos recursos fsicos que suportam os recursos lgicos - Segurana: isolamento dos utilizadores, permitir partilha segura dos recursos lgicos - Fiabilidade e Disponibilidade: detectar um conjunto de falhas, tolerar um conjunto de erros - Interface de Programao Completa e Simples: facilitar a concepo das aplicaes, a sua manuteno e portabilidade - Interface de Operao e Gesto dos Recursos Lgicos fcil de usar 6- O que um monitor de controlo, o que o constitui e qual a sua limitao principal? 6- O monitor de controlo permite ao utilizador carregar programas em memria, edit-los, etc, obter resultados dos programas. (falta limitao principal) 7- Diga o que entende por tratamento em lotes (batch). 7- Como os perifricos mecnicos eram muito lentos, decidiu-se separar as entradas e sadas do processamento, assim as E/S e os programas podem ser executados em paralelo. 8- Em que consiste a multiprogramao? 8- O mecanismo de interrupes permite multiplexar o processador entre vrias actividades concorrentes; a multiprogramao permite ento a execuo concorrente de vrios programas e nomeadamente permite optimizar a utilizao do processador. 9- O que entende por tempo partilhado e quais as consequncias deste? 9- O tempo partilhado cria a iluso que o computador est permanentemente disponvel para o utilizador. Como consequncia do tempo partilhado teve de existir uma reviso dos algoritmos de escalonamento, definio de mecanismos de segurana, aparecimento de sistemas de ficheiros, hierarquia de memria. 10- O que a memria virtual e qual a propriedade que a impulsiona? 10- A memria virtual elimina a restrio fsica imposta pelo tamanho da memria fsica permitindo um grau de multiprogramao muito superior e impulsionada pela propriedade da localidade. 11- Distinga tempo virtual de tempo real. Distinga igualmente os 2 tipos de tempo real. 11- O tempo virtual o tempo de execuo dos programas que no tm relao com o tempo cronolgico exterior ao computador; o tempo real tentam garantir que o computador produz uma resposta a um acontecimento externo num intervalo de tempo determinado (caso contrrio o sistema no cumpre a sua especifico - falha). Os sistemas de tempo real so de 2 tipos: - Tempo Real Relaxado ou Soft Real Time : sistema onde se admite que certas respostas a acontecimentos externos

podem no ser dadas exactamente nos intervalos de tempo especficados - Tempo Real Estrito ou Hard Real Time : sistema onde o no cumprimento de um requisito temporal corresponde a uma falha, obrigando a um escalonamento de processos que torna estes sistemas totalmente incompatveis com o funcionamento em tempo virtual interactivo 12- O que um sistema aberto? 12- Um sistema aberto um sistema portvel e interopervel, de interface normalizada e com gnese no sistema UNIX (resumo: sistema aberto = LINUX p.e.).

13- Descreva a organizao tpica dum SO. 13- Um sistema operativo organizasse em: Kernel (system

(ncleo dividido em mdulos), Biblioteca das funes de sistema

calls

usadas para aplicaes), Processos Sistema.

14- Aplicaes em modo utilizador no podem interferir com dados/execuo do SO. Porqu? 14- Porque essas aplicaes podem suprimir/alterar registos, situao crtica a nvel de segurana. 15- Como se "separa" o modo ncleo do modo utilizador? 15- O modo utilizador separa-se do modo kernel por meio de uma barreira de proteco que s quebrada aquando invocada uma interrupo de software (trap ). Em seguida um exemplo de como isso pode acontecer: fwrite <- requer chamada ao sistema 1. coloca registo de cdigo ref "fwrite" 2. interrupo software (trap) a) comutao para modo ncleo b) invocando handler do ncleo (agulhagem) > olha para o registo com cdigo "fwrite" > invoca rotina do ncleo correspondente ao "fwrite" - invoca E/O (reservada ao modo ncleo) c) handler retorna 3. retorna ao programa utilizador 16- Descreva estrutura monoltica e os seus problemas. 16- A estrutura monoltica constituida apenas por um nico sistema, internamente organizada por mdulos, tem estruturas de dados globais. O problema surge quando necessrio dar suporte a novos perifricos (fez posteriormente surgir os gestores de dispositivos ou device drivers). 17- Descreva sistema em camadas e a sua desvantagem principal. 17- No sistema em camadas cada camada usa os servios da camada precedente, fcil modificar o cdigo de uma camada, possui mecanismos de proteco o que implica uma maior segurana e robustez do sistema. A desvantagem deste sistema de ter um mau desempenho devido s vrias comutaes entre as vrias camadas. 18- O que permitiu o micro-ncleo? O que o constitui? 18- O micro-ncleo tem reduzidas dimenses e permitiu possuir apenas o essencial do SO: gesto de fluxos de execuo (threads), gesto dos espaos de endereamento, comunicao entre processos, gesto das interrupes. 2 - PROCESSOS 1- O que entende por pseudoconcorrncia? 1- Consiste na implementao de sistemas multiprogramados sobre um computador com um nico processador. 2- Defina programa e processo. 2- Um programa um ficheiro executvel sem actividade, e um processo um objecto do sistema operativo que suporta a execuo dos programas. 3- Quais as semelhanas entre um processo e um processador? 3- Um processo e um processador ambos tm: espao de endereamento virtual (conjunto de posies de memria acessveis, cdigo, dados, pilha, dimenso varivel), reportrio de instrues (do processador executveis em modo utilizador, funes do sistema operativo), contexto de execuo/estado interno (valor dos registos do processador, toda a informao necessria para retomar a execuo de um processo, memorizado quando o processo retirado de execuo). 4- Diga quais as propriedades que definem o objecto "processo". 4- As propriedades do objecto processo so: identificador, programa, espao de endereamento, prioridade, processo pai, canais de entrada sada, ficheiros, quotas de utilizao de recursos, contexto de segurana. 5- Quais os comandos para criar, eliminar processos pais e filhos? 5- Os comandos so: - para criar: IdProcesso = CriaProc (Cdigo, Prioridade,...)

- para eliminar: EliminarProc (IdProcesso) - para bloquear: Estado = EsperarTerminacao (Idprocesso) 6- O que entende por modelo de segurana? 6- Um processo em execuo tem de estar associado a um Utilizador (entidade que pode ser responsabilizada pelos seus actos), os utilizadores so representados no sistema por o UID e para facilitar a partilha o utilizador pode pertencer a um grupo de utilizadores (GID). 7- Como constituido o controlo dos Direitos de Acesso? 7- O controlo dos direitos de acesso basicamento constituido por uma autorizao, que uma operao que valida os direitos do utilizador sobre um recurso antes deste poder executar uma operao sobre ele. A autorizao baseia-se conceptualmente numa Matriz de Direitos de Acesso. Para um dado objecto, a coluna da matriz define a Lista de Direitos de Acesso (ACL) e para um dado utilizador a linha respectiva define todos os seus direitos normalmente designados por Capacidade. 8- Como se identifica um processo em UNIX? Como se relacionam estes? 8- A identificao de um processo feita a partir de um inteiro designado por PID, e alguns identificadores so pratribuidos: processo 0 o swapper (gesto de memria) e o processo 1 init o de inicializao do sistema. Os processos relacionam-se de forma hierrquica: o processo herda todo o ambiente do processo pai, o processo sabe quem o processo que descende designado por processo pai, quando o processo pai termina os subprocessos continuam a executar-se ou seja so adoptados pelo processo de inicializao (pid=1). Os processos tm tambm prioridades variveis. 10- Como se d a autenticao? 10- Um processo tem associados 2 identificadores que so atribudos quando o utilizador efectua o login (se autentica) perante o sistema (UID e GID). 11- Em quantos (e quais) categorias tem a proteco no acesso aos recursos? 11- Para um recurso a proteco definida em 3 categorias: - Dono (owner): utilizador que normalmente criou o recurso - Grupo (group): conjunto de utilizadores com afinidades de trabalho que justificam direitos semelhantes - Restantes utilizadores (world) 12- Conceptualmente comprime-se a linha da matriz de ACL associada a um recurso em apenas 3 entradas. Quais os motivos? Desvantagem? 12- Tal assim acontece devido ao facto do unix j ter sido criado muito tempo, tanto que os novos SOs so bem mais flexveis. 13- O que so: SETUID, BIT SETUID, UID e GID (real e effective)? 13- O SETUID permite alterar dinamicamente o utilizador; o Bit SetUID faz com que o processo assuma a identidade do dono do ficheiro durante a execuo do programa; o Real UID e GID so os originais do processo enquanto que os Effective UID e GID so usados para verificar permisses de acesso e que pode ter sido modificado pelo SETUID. 14- O que so threads (tarefas)? 14- As threads so mecanismos simples para criar fluxos de execuo independentes, partilhando um contexto comum. 15- Porque usar tarefas em vez de processos? 15- Porque os processos obrigam ao isolamento (espaos de endereamentos disjuntos) e existe dificuldade em partilhar dados. As threads so mais eficientes a nvel de criao e comutao. 16- Como a programao num ambiente multitarefa? 16- As tarefas partilham o mesmo espao de endereamento e portanto tm acesso s mesmas variveis globais. A modificao e teste das variveis globais tem de ser efectuada com precaues especiais para evitar erros de sincronizao. 17- Quais as alternativas de implementao de tarefas? 17- As alternativas so implementao de tarefas-ncleo e tarefas-utilizador (pseudotarefas). 18- O que so pseudotarefas? 18- As pseudotarefas so tarefas implementadas numa biblioteca de funes no espao de endereamento do utilizador. 19- Compara as tarefas modo utilizador e modo ncleo quanto a: - capacidade de utilizao em diferentes SOs - velocidade de criao e comutao (compare tambm com processos) - tirar partido da execuo paralela em multiprocessadores - aproveitamento do CPU quando uma tarefa bloqueia 19- Comparao: - as threads kernel no podem ser usadas se o SO no suportar

- threads-utilizador so mais rpidas enquanto os processos so os mais lentos - em multiprogramao, lana uma thread-kernel por processador, bem como nos processos - thread-kernel tem maior aproveitamento, bem como os processos 20- O que so rotinas assincronas? Qual o seu nome alternativo? 20- As rotinas assincronas so certos acontecimentos que devem ser tratados pelas suas aplicaes, embora no seja possvel prever a sua ocorrncia. O seu nome alternativo "eventos". 21- Como trat-las na programao sequencial? 21- Num modelo multitarefa poderia dedicar-se uma tarefa espera de uma acontecimento, o que penalizante. 22- Poder-se-ia lanar uma tarefa por acontecimento. Qual a desvantagem? 22- A desvantagem que isso seria penalizante a nvel de desempenho por implica a existncia de testes sistemticos. 23- Diga como se efectua o tratamento dos signals. 23- O tratamento dos signals pode ser feito: por omisso (termina o processo), ingnorado (sinais com o SIGKILL no podem ser ignorados), atravs de uma rotina de tratamento (handler) atravs da chamada funo sistema signal. 27- O que so processos, threads, fibers e jobs em windows? 27- Em windows, um processo um contentor de recursos usados pelas tarefas, as threads reais so fluxos de execuo, as fibers so pseudotarefas que no so vistas pelo ncleo, os jobs so grupos de processos que permitem gesto uniforme. 3 - SINCRONIZAO 1 - Qual o problema da excluso mtua? problema se for multi-tarefa? 1 - Sem trincos, se o ambiente for multitarefa podem-se gerar problemas a nvel de tarefas e dos resultados delas implicitos. 2 - Quais as propriedades da seco crtica? 2 - Excluso mtua e progresso(liveness) -- ausncia de interblocagem (deadlock) e ausncia de mngua (starvation). 8 - Relativamente s solues algoritmicas de Peterson e Barkery, que podemos concluir? 8 - So complexas e provocam latncia, s contemplam espera activa. 9 - Que concluses podemos tirar sobre as solues com suporte do hardware? 9 - Facilitam o problema da resoluo de sincronizaes por meio de funes abrir() e fechar(), as quais usam instrues especiais oferecidas pelos processadores, nomeadamente a inibio das interrupes. Contudo no podem ser utilizados directamente por programas em modo utilizador, e s contemplam espera activa. 10 - Quais as solues com suporte do SO? 10 - As solues so a utilizao de software trap (interrupo SW), comutao para modo ncleo, estruturas de dados e cdigo de sincronizao pertencente ao ncleo, usa o suporte do hardware. 12 - Quais as duas primitivas de sincronizao? 12 - Trincos e Semforos. 13 - possvel obter-se excluso mtua com trincos(locks)? 13 - O trinco lgico serve exclusivamente para implementar excluso mtua. 14 - Qual o diagrama de estados dos processos/tarefas? 14 - Um Executvel, ao ser seleccionado pelo Despacho, colocado em Execuo. Depois disso pode-lhe acontecer uma de duas coisas: ou retirado pelo Despacho e volta a estar Executvel ou ento Bloqueado num Trinco Lgico, fica Bloqueado, e depois Desbloqueado, voltando a estar Executvel de novo. 15 - Explique o processo como o trinco bloqueia a tarefa? E para desbloquear? 15 - O trinco retira a tarefa de execuo, salvaguarda o seu contexto, marca o seu estado como bloquada, coloca a estrutura de dados que descreve a tarefa na fila de espera associada ao trinco. No caso contrrio, caso existam tarefas bloqueadas, o trinco marca o estado da tarefa como "executvel", e retira a estrutura de dados que descreve a tarefa da fila de espera associada ao trinco. 16 - Quais as limitaes dos trincos? 16 - Os trincos so limitados nomeadamente quanto a bloquear tarefas se a pilha j estiver cheia. 17 - Quais as primitivas dos semforos? 17 - As primitivas dos semforos so: s=criar_semaforo(num_unidades), esperar(s), assinalar (s).

18 - Quais as variantes dos semforos? 18 - H 4 tipos: Genrico - assinalar() liberta um processo qualquer da fila; FIFO - assinalar() liberta o processo que se bloqueou h mais tempo; Semforo com Prioridades: o processo especifica em esperar() a prioridade, assinalar() liberta os processos por ordem de prioridades; Semforo com Unidades - as primitivas esperar() e assinalar() permitem especificar o nmero de unidades a esperar ou assinalar. 19 - possvel excluso mtua com semforos? E se a pilha estiver completa? 19 - Devido ao facto do semforo ser mais genrico que o trinco lgico, pode ser usado para garantir excluso mtua mas mais ineficiente que o trinco lgico por isso o programador tem de garantir o uso simtrico do assinalar() e do esperar(). 20 - O que cooperao entre processos? 20 - Na cooperao entre tarefas estas competem por recursos e indicam umas s outras a existncia/ausncia de recursos e a ocorrncia de acontecimentos. 22 - Qual o objectivo e as limitaes dos mecanismos directos de sincronizao? 22 - O objectivo suspender temporariamente a execuo de subprocessos. As limitaes so: a sincronizao directa implica o conhecimento do identificador do processo sobre o qual se pretende actual; no se pode dar aos programas dos utilizadores a possibilidade de interferirem com outros utilizadores; a restrio habitual apenas permitir o uso de sincronizao directa entre processos do mesmo utilizador. 4 - PROCESSOS NCLEO 1 - O que o gestor de processos? 1 - O gestor de processos a entidade do ncleo responsvel por suportar a execuo dos processos. Faz a multiplexagem do processador(despacho e escalonamento), faz a gesto das interrupes e encarrega-se das funes de sincronizao. 3 - Quais os 2 tipos de contextos e em que eles consistem? 3 - Existe o contexto de Hardware e o contexto de Software. O Contexto de Hardware so os registos do processador e os registos da unidade de gesto de memria. O Contexto de Software a identificao, a prioridade, o estado e outras informaes de um processo. 4 - Como que o Sistema Operativo pode ser invocado? Essas invocaes so quais? Defina-as. 4 - As actividades do sistema operativo podem ser consideradas como desencadeadas por interrupes, as quais podem ser provocadas por: Hardware (relgio ou perifricos), Software (traps, software interrupts) ou Excepes (provocadas pelo programa em execuo como diviso por zero ou acesso a memria indevido). 5 - Qual o processo de invocao do SO? 5 - O processo o seguinte: 1- Interrupo (salvaguarda contexto na pilha actual) 2- Gestor das Interrupes (identificao da interrupo -- vector de int.) 3- Rotina de Servio de Interrupo (serve a interrupo possivelmente alterando o estado de algum processo) 4- Despacho 5- Retorno da Interrupo 6 - Qual a funo do Despacho? 6 - O Despacho tem como funo comutar o processador sempre que lhe seja indicado para o fazer. A sua funcionalidade : copia o contexto hardware do processo em execuo da pilha actual para o respectivo descritor (entrada na tabela de processos), escolhe o processo mais prioritrio entre os executveis, carrega o contexto hardware no processador, transfere o controlo para o novo processo: coloca program counter guardado no contexto do novo processo na pilha ncleo, return from interrupt (RTI) "enganado", para o processo comutado a rotina de interrupo "demorou muito tempo a executar-se". 7 - Como esto estruturadas as funes de sistema e quais as suas vantagens? 7 - Esto estruturadas em 2 entidades funcionais: a funo propriamente dita (faz parte do cdigo do sistema operativo) e a rotina de interface que ligada com o cdigo do utilizador e que usa instrues de interrupo por software (traps) para invocar a funo no ncleo). As vantagens so: proteco (o cdigo das funes sistema est residente no ncleo e no pode ser acedido pelos processos utilizador), a interrupo muda o estado do Processador de modo utilizador para modo ncleo, partilha das funes sistema por todos os processos e o sistema operativo pode ser modificado (novas verses) transparentemente desde que no se altere a interface. 8 - Quais os objectivos do escalonamento? 8 - O objectivo optimizar a utilizao do processador (e dos restantes componentes do sistema. As polticas de escalonamento definem objectivos mais especficos: - Batch: produtividade (throughput - maximizar o nmero mximo de jobs por hora), turn around time (tempo entre a

submisso do trabalho e a obteno do resultado), utilizao do processador (manter o processador com elevada ocupao); - Tempo partilhado: tempo de resposta (responder rapidamente aos eventos desencadeados pelos utilizadores; - Tempo real: cumprir metas temporais (deadlines para tratamento de acontecimentos), funcionamento com desempenho previsvel.

9 - Quando deve a poltica de escalonamento ser invocada? Qual o problema da gerado? 9 - Deve ser invocada sempre que um recurso do sistema atribudo ou libertado. O problema disso que demora tempo. 10 - Quais as 2 classes de processos do escalonamento em Tempo Partilhado? Qual destas devem ter maior prioridade no acesso ao CPU? 10 - As duas classes so o CPU bound e o I/O bound. O que deve ter maior prioridade de acesso o I/O bound pois tem menor tempo de utilizao do CPU. 12 - Quais as polticas de Escalonamento em Sistemas de Tempo Partilhado? 12 - As polticas so: tempo de execuo partilhado (time-slices), prioridades, preempo e modificao dinmica das prioridades. 13 - O que o tempo de execuo partilhado (time-slices ou round-robin), qual o seu objectivo, como se implementa e quais as suas desvantagens? 13 - O time-slice um quantum de tempo que limita o tempo de execuo de um processo. O seu objectivo permitir que todos os processos executveis tenham oportunidade de dispor do processador ciclicamente. A sua implementao consiste numa lista de processos gerida em round-robin. A sua desvantagem que pode conduzir a tempos de resposta elevados em situaes de muita carga. 14 - O que so prioridades? De que tipo podem ser? 14 - As prioridades permitem definir a importncia de um processo no processo de escalonamento, um processo mais prioritrio tem maior probabilidade de dispor do processador. A prioridade pode ser: fixa (usual em processos de tempo real), dinmica (consoante o comportamento do processo - usual nos sistemas de tempo virtual e normalmente priveligiando os processos interactivos (I/O bound). 15 - Numa gesto multilista, em que situaes um processo deve ser promovido? E relegado? 15 - Deve ser promovido quando bloqueado e relegado quando termina o seu time-slice. 16 - O que a preempo, qual o seu objectivo, a sua implementao e desvantagens? 16 - A preempo a aco de retirar o processador a um processo em execuo devido existncia de outro mais prioritrio. Tem como objectivo permitir que os processos mais prioritrios reajam rapidamente a um dado acontecimento (reactividade aos acontecimentos externos). A sua implementao feita via despacho que deve ser chamado na sequncia de todas as aces susceptveis de modificarem os estados dos processos. As suas devantagens devem-se mudana frequante de contexto. 17 - Em quantas estruturas se encontrava dividido o UNIX? Em que consistiam estas? 17 - O UNIX encontrava-se dividido em 2 estruturas: proc (sempre mantida em memria para suportar o escalonamento e o funcionamento dos signals) e user (s era necessria quando o processo se estivesse a executar -> transferida para disco se houvesse falta de memria). 18 - Porque motivo o task_struct do linux deixou de estar separado em 2 colunas? 18 - Devido ao melhor hardware que existe hoje em dia. 19 - Diga em que circunstncias trocado o modo utilizador para o modo ncleo. Ao que corresponde essa mudana? 19 - O processo em modo utilizador executa o programa que est no seu segmento de cdigo e muda para modo sistema sempre que uma excepo ou interrupo desencadeada, podendo essas ser provocada pelo utilizador ou pelo hardware. A mudana de modo corresponde mudana para modo de proteco mais privilegiado do processador, mudana do espao de endereamento do processo utilizador para o espao de endereamento do ncleo, mudana da pilha utilizador para o pilha ncleo do processo. A pilha ncleo usada a partir do instante em que o processo muda de modo e est vazia quando o processo se exectuta em modo utilizador.

20 - Como feito o escalonamento nos vrios modos e quais destes tm maior prioridade? 20 - O escalonamento preemptivo em modo utilizador, as prioridades ncleo so sempre superiores s prioridades utilizador. 21 - Como se calculam as prioridades em Modo Utilizador? 21 - Prioridade = TempoProcessador/2 + PrioridadeBase

22 - Existe algum problema com o algoritmo de escalonamento do Linux? Qual? Porqu? 22 - Sim, escalabilidade. Porque o tempo em UNIX est dividido em pocas e cada poca termina quando todos os processos usaram o seu quantum. 23 - Porque que o facto de um processo ser mais prioritrio ser escolhido em primeiro lugar melhora a escalabilidade? 23 - Pois so aqueles que so mais essenciais de se executarem. 24 - Em que consiste o escalonamento em "real-time"? 24 - Possibilita definir prioridades estticas superiores s dinmicas e so necessrias permisses. 25 - Em que circunstncias ocorre o despacho? 25 - O despacho invocado quando o processo em execuo no pode continuar (bloqueou uma chamada de sistema ou terminou) ou quando o processo retorna ao modo utilizador. 26 - Quais as chamadas sistema do escalonamento? 26 - As chamadas de sistema do escalonamento so: nice(int val), int getpriority(int which, int id), setpriority(int which, int id, int prio). 27 - Como criado um processo filho? 27 - Para se criar um processo filho reserva-se uma entrada na tabela proc (UNIx) e verifica-se que o utilizador no excedeu o nmero mximo e subprocessos. Atribui-se um valor ao pid, normalmente um mero incremento de um inteiro mantido pelo ncleo e copia-se a imagem do pai. Dado que a regio do texto partilhada, apenas incrementado o contador do nmero de utilizadores que acedem a essa regio. As restantes regie so copiadas (algumas incrementalmente) e retornam o valor do pid do novo processo para o processo pai, zero para o processo filho (coloca os valores apropriados nas respectivas pilhas). 28 - Como se pode terminar um processo? E suspend-lo? 28 - Um processo pode ser terminado pela funo exit(), a qual ficha todos os directrios, liberta directrio corrente, liberta regies de memria, actualiza ficheiro com registo da utilizao do processador, memria e I/O, envia signal death of child para o processo pai (por omisso ignorado) e o registo proc/task mantm-se no estado zombie (permite ao processo pai encontrar informao sobre o filho quando executa o wait). Outra maneira de terminar via a funo wait(), onde esta procura o filho zombie, pid do filho e estado do exit so retornados atravs do wait, liberta a estrutura proc do filho e se no h filho zombie, o pai fica bloqueado. 29 - Como se d a execuo de um programa? 29 - Utilizando a funo exec que executa um novo programa no mbito de um processo j existente. Verifica ento se o ficheiro existe e executvel, copia argumentos da chamada a exec da pilha do utilizador para o ncleo (pois o contexto utilizador ir ser destruido), liberta as regies de dados e pilha ocupadas pelo processo e eventualmente a regio de texto (se mais nenhum processo a estiver a usar), reserva novas regies de memria, carrega o ficheiro de cdigo executvel, copia or argumentos da pilha do ncleo para a pilha utilizador. O processo fica no estado executvel e o contexto ncleo mantm-se inalterado: identificao e ficheiros abertos. 30 - Quais as 2 primitivas de sincronizao interna? 30 - As duas primitivas so sleep_on (bloqueia sempre o processo) e wake_up (desbloqueia todos os processos). 31 - Como enviado um signal? Como este tratado? 31 - Para o envio de um signal, o sistema operativo coloca a 1 o bit correspondente ao signal, este bit encontra-se no contexto do processso a quem o signal se destina e no guardado o nmero de vezes que um signal enviado. O UNIX verifica se h signals quando o processo passa de modo ncleo para modo utilizador ou quando entra ou sai do estado bloqueado. O LINUX verifica quando o processo comuta para estado "em exec"; no descritor do processo encontra-se o enfereo de rotina de tratamento de cada signal; a pilha de modo utilizador alterada para executar a funo de tratamento do signal e a funo de tratamento executa-se no contexto do processo que recebe o signal como se fosse uma rotina normal. 32 - Como funciona o Gestor de Processos em Windows? 32 - O gestor funciona por meio de objectos e referncias. Permitem interface uniforme para acesso e partilha dos recursos do SO, centralizao das funes de segurana e autorizao, sistema simples de recolha automtica dos objectos no necessrios: gerir as referncias para saber quando um objecto pode ser libertado porque ningum o usa. 5 - GESTO DE MEMRIA 1 - Qual o objectivo da gesto de memria? 1 - O objectivo gerir o espao de endereamento dos processos, assegurar que cada processo dispe da memria que precisa, garantir que cada processo s acede memria a que tem direito (proteco), optimizar o desempenho dos acessos. 2 - O que o espao de endereamento de memria?

2 - o conjunto de posies de memria que um processo pode referenciar. 3 - Quais as hierarquias de memria? 3 - As hierarquias so: Memria principal fsica ou primria (acesso aleatrio, tempo de acesso reduzido, custo elevado e reduzida dimenso, informao voltil, RAM+caches(+registos)) e Memrias Secundrias ou de disco (acesso aleatrio por blocos, tempo de acesso elevado, custo reduzido e mais abundante, informao persistente).

4 - O que um endereo real? E um virtual? 4 - Um endereo real o endereo indicado no programa e aquele que acedido na memria principal. O endereo virtual so indereos indicados no programa convertidos em tempo real de execuo, pelo MMU(unidade de gesto de memria do processador); caso a palavra referenciada esteja em memria principal, a MMU obtm o seu endereo real e acede memria; caso contrrio, a MMU avisa o SO para este carregar a palavra em causa. 5 - Quais as limitaes de um endereamento real? 5 - As limitaes so: limitaes devido ao espao de memria fsica da RAM (resoluo por overlays), risco de correrem 2 programas um sobre o outro. 6 - O que o Overlay? 6 - O Overlay consiste na possibilidade de executar programas com dimenso superior memria principal em sistemas com endereamento real. 7 - Quais os tipos de parties e fragmentao do endereamento real? 7 - As parties podem ser fixas ou variveis. A fragmentao interna no primeiro caso e externa no segundo. 8 - Como constituido o endereo virtual e quais os seus 2 tipos de blocos? 8 - O espao de endereamento constituido por bloco e deslocamento. Os seus dois tipos de blocos so: segmentos e pginas. 9 - Em que consiste o Princpio da Localidade de Referncia? Porque motivo torna a gesto em blocos eficiente? 9 - O principio da localidade consiste no seguinte: quando se refere a uma palavra de memria com grande probabilidade vai-se referenciar as palavras vizinhas. 10 - O que a segmentao? 10 - A segmentao consiste na diviso dos programas em segmentos lgicos que reflectem a sua estrutura funcional e na gesto de memria que suporta abstrao das linguagens de programao. O segmento a unidade de carregamento em memria (eficincia) e proteco. A dimenso dos segmentos limitada pela arquitectura e no pode exceder a dimenso da memria principal. 11 - Qual o tipo de fragmentao da memria virtual segmentada? O que permite a proteco e a partilha de memria entre processos? 11 - fragmentao externa. A proteco d-se a nvel da verificao de limites de endereamento intra-segmentos, verificao e limitao dos tipos de acesso ao segmento de leitura, escrita e execuo, processos diferentes tm tabelas de segmentos diferentes: espaos de endereamento disjuntos e inacessveis a terceiros. Para a partilha de memria entre processos basta colocar nas tabelas de segmentos dos processos em questo o endereo real do segmento a partilhar; os endereos virtuais usados para aceder ao segmento partilhado podem ser diferentes nos vrios processos, a proteco dum segmento partilhado definida para cada processo atravs da respectiva tabela de segmentos. 12 - O que a paginao? 12 - Na paginao, o espao de endereamento virtual tem dimenso superior da memria principal. A dimenso das pginas constante o que influencia a fragmentao interna, o nmero de falta de pginas, o nmero de entradas das tabelas de pginas e listas de pginas so mantidas pelo sistema operativo. Quando se aumenta o tamanho das pginas: pode-se aumentar/diminuir o nmero de falta de pginas (depende do padro de acesso do processo), aumenta a fragmentao interna, aumenta o tempo de resoluo de falta de pginas, diminui o nmero de entradas na tabela de pginas (aumenta offset). O tempo de resoluo esse limitado pela lentido do disco. 13 - Qual a proteco e a partilha de memria entre processos que esta permite? 13 - A nvel de proteco feita a verifio dos tipos de acesso(leitura, escrita e execuo), processos diferentes tm tabelas de pginas diferentes(espaos de endereamento disjuntos e inacessveis a terceiros). Partilha de memria entre processos semelhante ao usado para memria segmentada, partilha de blocos lgicos(partilha de mltiplas pginas), e no possvel partilhar menos que uma pgina (versus arquitectura segmentada, partilha de uma diviso lgica do programa). 14 - Qual a dimenso da tabela de pginas com endereos virtuais e 32 bits e pginas de 4kBytes? 14 - O tamanho de pgina 2^12 = 4Kbs. Logo o offset seria de 12 bits e o nmero de pginas 20. 15 - Qual a vantagem das tabelas de pginas multi-nvel? 15 - A vantagem a tabela apresentar-se como uma soluo para o dimensionamento da tabela de pginas, sendo a

ideia no manter todas as tabelas na memria e usar dois apontadores e um deslocamento. 16 - Qual o problema da tabela de pginas invertida? 16 - A tabela mapeia pginas fsicas em pginas virtuais, sendo o seu problema a latncia na traduo. Uma soluo usar TLB mais hash table. 17 - Em que casos ocorre o swapping e o paging? 17 - Utiliza-se quando necessrio libertar espaoona memria fsica e o SO copia pginas para o disco (escolhe aquelas que previsivelmente no iro ser usadas brevemente). 18 - Em relao aos algoritmos de gesto de memria, quais os tipos de decises que o sistema operativo tem de tomar em relao memria principal? 18 - Os tipos de decises que o sistema operativo tem de tomar em relao memria principal so: reserva, tranferncia e substituio. 19 - Quais os algoritmos de reserva de segmentos e qual o seu critrio de escolha de blocos livres? 19 - Os algoritmos de reserva de segmentos so: best-fit(o menor possvel), worst-fit(o maior possvel), first-fit(o primeiro possvel), next-fit(o primeiro possvel a seguir ao anterior). 20 - No que consiste o algoritmo Buddy? 20 - Quando a memria livre dividida em blocos de dimenso b^n, b designa-se por buddy. Um dos buddies subdividido qtas vezes for preciso para se obter um bloco da dimenso desenjada. Se possvel, na libertao um bloco recombinado com o seu buddy, sendo a associao entre buddies repetida at se obter um bloco com a maior dimenso possvel e consegue-se um bom equilbrio entre o tempo de procura e a fragmentao interna e externa. 21 - Quais as 3 situaes em que pode ocorrer a transferncia de blocos? 21 - Pode ocorrer on request, on demand, por prefetching. 22 - Quais os possveis critrios para decidir qual o processo a transferir para disco? 22 - Os critrios so: estado e prioridade do processo, tempo de permanncia na memria principal, dimenso do processo. 23 - Quais os algoritmos de substituio de pginas? 23 - Os algoritmos so: ptimo, Least Recently Used(LRU), Not Recently Used(NRU), FIFO. 24 - O que so working sets? 24 - o conjunto de pginas acedidas pelo processo no intervalo de tempo de um processo. 25 - Quais os casos que provocam transferncia (swapping)? 25 - Os 4 casos so: chamada fork, chamada brk, crescimento natural do stack, quando o SO precisa de espao para carregar em memria um processo que estava swapped-out. 26 - Quais as consequncias da criao de um processo? 26 - Embora o fork duplique os segmentos de cdigo, dados e pilha do pai, no feita nenhuma cpia fsica de memria.