Você está na página 1de 24

Aqui est uma compilao da matria de Sistemas Operativos do IST-TagusPark, com perguntas (e respostas) feitas a partir dos slides

e aulas do professor. As respostas a estas perguntam encontram-se ocultas aqui mas podem estar disponveis se clicarem no link no final deste post. As respostas tm igualmente suporte de links para outros sites de modo a completar o estudo em questo. Tentem responder s perguntas antes de verem a soluo e estejam vontade para criticar as respostas e at de fornecerem mais matria importante ;)

1 - INTRODUO 1- Para que serve um SO? Que recursos gere? 2- Existem 2 interfaces. Quais? 3- Qual a misso so SO? 4- Quais as desvantagens de uma alternativa ao SO? 5- Quais os critrios de qualidade do SO? Descreva-os. 6- O que um monitor de controlo, o que o constitui e qual a sua limitao principal? 7- Diga o que entende por tratamento em lotes (batch). 8- Em que consiste a multiprogramao? 9- O que entende por tempo partilhado e quais as consequncias deste? 10- O que a memria virtual e qual a propriedade que a impulsiona? 11- Distinga tempo virtual de tempo real. Distinga igualmente os 2 tipos de tempo real. 12- O que um sistema aberto? 13- Descreva a organizao tpica dum SO. 14- Aplicaes em modo utilizador no podem interferir com dados/execuo do SO. Porqu? 15- Como se "separa" o modo ncleo do modo utilizador? 16- Descreva estrutura monoltica e os seus problemas. 17- Descreva sistema em camadas e a sua desvantagem principal. 18- O que permitiu o micro-ncleo? O que o constitui?

RESPOSTAS: 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- As duas interfaces so: interface operacional (comandos) e biblioteca de funes do 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- 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- 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 monitor de controlo permite ao utilizador carregar programas em memria, edit-los, etc, obter resultados dos programas. (falta limitao principal) 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- 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 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- 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- 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- Um sistema aberto um sistema portvel e interopervel, de interface normalizada e com gnese no sistema UNIX (resumo: sistema aberto = LINUX p.e.). 13- Um sistema operativo organizasse em: Kernel (ncleo dividido em mdulos), Biblioteca das funes de sistema (system calls usadas para aplicaes), Processos Sistema. 14- Porque essas aplicaes podem suprimir/alterar registos, situao crtica a nvel de segurana. 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- 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- 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 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? 2- Defina programa e processo. 3- Quais as semelhanas entre um processo e um processador? 4- Diga quais as propriedades que definem o objecto "processo". 5- Quais os comandos para criar, eliminar processos pais e filhos? 6- O que entende por modelo de segurana? 7- Como constituido o controlo dos Direitos de Acesso? 8- Como se identifica um processo em UNIX? Como se relacionam estes? 9- A execuo de um processo via fork() apenas permite lanar um processo com o mesmo cdigo. Quais os problemas resultantes disto? 10- Como se d a autenticao? 11- Em quantos (e quais) categorias tem a proteco no acesso aos recursos? 12- Conceptualmente comprime-se a linha da matriz de ACL associada a um recurso em apenas 3 entradas. Quais os motivos? Desvantagem? 13- O que so: SETUID, BIT SETUID, UID e GID (real e effective)? 14- O que so threads (tarefas)? 15- Porque usar tarefas em vez de processos? 16- Como a programao num ambiente multitarefa? 17- Quais as alternativas de implementao de tarefas? 18- O que so pseudotarefas? 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 20- O que so rotinas assincronas? Qual o seu nome alternativo? 21- Como trat-las na programao sequencial? 22- Poder-se-ia lanar uma tarefa por acontecimento. Qual a desvantagem? 23- Diga como se efectua o tratamento dos signals. 24- A chamada de sistema kill tem um nome enganador. Porqu? 25- Diga o que fazem as funes associadas aos signals: unsigned alarm, pause e unsigned sleep. 26- Quais as verses iniciais dos signals? 27- O que so processos, threads, fibers e jobs em windows?

RESPOSTAS: 1- Consiste na implementao de sistemas multiprogramados sobre um computador com um nico processador. 2- Um programa um ficheiro executvel sem actividade, e um processo um objecto do sistema operativo que suporta a execuo dos programas.

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- 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- Os comandos so: - para criar: IdProcesso = CriaProc (Cdigo, Prioridade,...) - para eliminar: EliminarProc (IdProcesso) - para bloquear: Estado = EsperarTerminacao (Idprocesso) 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- 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- A identificao de um processo feita a partir de um inteiro designado por PID, e alguns identificadores so pr-atribuidos: 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. 9- A execuo de um processo via fork() apenas permite lanar um processo com o mesmo cdigo. Quais os problemas resultantes disto? 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- 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- 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 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- As threads so mecanismos simples para criar fluxos de execuo independentes, partilhando um contexto comum. 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- 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- As alternativas so implementao de tarefas-ncleo e tarefas-utilizador (pseudotarefas). 18- As pseudotarefas so tarefas implementadas numa biblioteca de funes no espao de endereamento do utilizador. 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- 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- Num modelo multitarefa poderia dedicar-se uma tarefa espera de uma acontecimento, o que penalizante. 22- A desvantagem que isso seria penalizante a nvel de desempenho por implica a existncia de testes sistemticos. 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. 24- A funo kill envia um sinal ao processo. Apesar do nome, pode no matar o processo desde que o signal tenha um tratamento associado ou esteja ignorado. 25- O signal SIGALARM enviado para o processo depois de decorrerem o nmero de segundos especificados, se o argumento for zero o envio cancelado; o pause() aguarda a chegada de um signal; o unsigned sleep () faz um alarme e bloqueia-se espera do signal. 26- As verses iniciais dos signals so System V (associao de uma rotina a um signal apenas efectiva para uma activao, tratamento por omisso, pode gerar problemas se houver recepo sucessiva de signals) e BSD (recepo de um novo singal inibida durante a execuo da rotina de tratamento). 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? 2 - Quais as propriedades da seco crtica? 3int trinco = ABERTO; fechar() { while (trinco == FECHADO) ; trinco = FECHADO; } abrir () { trinco = ABERTO; } Qual a propriedade que no garantida? 4int t1_quer_entrar = FALSE, t2_quer_entrar = FALSE; t1_fechar() { while (t2_quer_entrar == TRUE) ; t1_quer_entrar = TRUE; } t1_abrir() { t1_quer_entrar = FALSE;

} /* t2 -> simetrico */ Qual a propriedade que no garantida? 5int t1_quer_entrar = FALSE, t2_quer_entrar = FALSE; int tar_prio = 1; t1_fechar() { tar_prio = 2; t1_quer_entrar = TRUE; while (t2_quer_entrar && tar_prio == 2) ; } t1_abrir() { t1_quer_entrar = FALSE; } /* t2 -> simetrico */ O que acontece neste caso? 6int tar_prio = 1; t1_fechar() { tar_prio = 2; while (tar_prio == 2) ; } t1_abrir() { } /* t2 -> simetrico */ Qual a propriedade que no garantida? 7int t1_quer_entrar = FALSE; int t2_quer_entrar = FALSE; int tar_prio = 1; t1_fechar() { t1_quer_entrar = TRUE; tar_prio = 2; while (t2_quer_entrar && tar_prio == 2) ; } t1_abrir() { t1_quer_entrar = FALSE; } t2_fechar() { t2_quer_entrar = TRUE;

tar_prio = 1; while (t1_quer_entrar && tar_prio == 1) ; } t2_abrir() { t2_quer_entrar = FALSE; } Porque motivo garantida a ausncia de "starvation"? 8 - Relativamente s solues algoritmicas de Peterson e Barkery, que podemos concluir? 9 - Que concluses podemos tirar sobre as solues com suporte do hardware? 10 - Quais as solues com suporte do SO? 12 - Quais as duas primitivas de sincronizao? 13 - possvel obter-se excluso mtua com trincos(locks)? 14 - Qual o diagrama de estados dos processos/tarefas? 15 - Explique o processo como o trinco bloqueia a tarefa? E para desbloquear? 16 - Quais as limitaes dos trincos? 17 - Quais as primitivas dos semforos? 18 - Quais as variantes dos semforos? 19 - possvel excluso mtua com semforos? E se a pilha estiver completa? 20 - O que cooperao entre processos? 21 - Estude bem os casos seguintes: produtor-consumidor,leitores-escritore e jantar de filsofos 22 - Qual o objectivo e as limitaes dos mecanismos directos de sincronizao?

RESPOSTAS: 1 - Sem trincos, se o ambiente for multitarefa podem-se gerar problemas a nvel de tarefas e dos resultados delas implicitos. 2 - Excluso mtua e progresso(liveness) -- ausncia de interblocagem (deadlock) e ausncia de mngua (starvation). 3 - No garante Excluso Mtua. 4 - Problema de DeadLock. 5 - garantida excluso mtua, no h interblocagem nem starvation. 6 - Garante excluso mtua mas s funciona quando h concorrncia (bloqueia no while). 7 - Algoritmo de Peterson.

8 - So complexas e provocam latncia, s contemplam espera activa. 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 - 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 - Trincos e Semforos. 13 - O trinco lgico serve exclusivamente para implementar excluso mtua. 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 - 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 - Os trincos so limitados nomeadamente quanto a bloquear tarefas se a pilha j estiver cheia. 17 - As primitivas dos semforos so: s=criar_semaforo(num_unidades), esperar(s), assinalar (s). 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 - 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 - Na cooperao entre tarefas estas competem por recursos e indicam umas s outras a

existncia/ausncia de recursos e a ocorrncia de acontecimentos. 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? 2 - Qual o Diagrama de Estados dos Processos? 3 - Quais os 2 tipos de contextos e em que eles consistem? 4 - Como que o Sistema Operativo pode ser invocado? Essas invocaes so quais? Defina-as. 5 - Qual o processo de invocao do SO? 6 - Qual a funo do Despacho? 7 - Como esto estruturadas as funes de sistema e quais as suas vantagens? 8 - Quais os objectivos do escalonamento? 9 - Quando deve a poltica de escalonamento ser invocada? Qual o problema da gerado? 10 - Quais as 2 classes de processos do escalonamento em Tempo Partilhado? Qual destas devem ter maior prioridade no acesso ao CPU? 12 - Quais as polticas de Escalonamento em Sistemas de Tempo Partilhado? 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? 14 - O que so prioridades? De que tipo podem ser? 15 - Numa gesto multilista, em que situaes um processo deve ser promovido? E relegado? 16 - O que a preempo, qual o seu objectivo, a sua implementao e desvantagens? 17 - Em quantas estruturas se encontrava dividido o UNIX? Em que consistiam estas? 18 - Porque motivo o task_struct do linux deixou de estar separado em 2 colunas? 19 - Diga em que circunstncias trocado o modo utilizador para o modo ncleo. Ao que corresponde essa mudana? 20 - Como feito o escalonamento nos vrios modos e quais destes tm maior prioridade? 21 - Como se calculam as prioridades em Modo Utilizador? 22 - Existe algum problema com o algoritmo de escalonamento do Linux? Qual? Porqu? 23 - Porque que o facto de um processo ser mais prioritrio ser escolhido em primeiro lugar melhora a escalabilidade? 24 - Em que consiste o escalonamento em "real-time"? 25 - Em que circunstncias ocorre o despacho? 26 - Quais as chamadas sistema do escalonamento? 27 - Como criado um processo filho?

28 - Como se pode terminar um processo? E suspend-lo? 29 - Como se d a execuo de um programa? 30 - Quais as 2 primitivas de sincronizao interna? 31 - Como enviado um signal? Como este tratado? 32 - Como funciona o Gestor de Processos em Windows?

RESPOSTAS: 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. 2 - Resposta no tema 3 pergunta 14. 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 - 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 - 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 - 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 - 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 - 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 - Deve ser invocada sempre que um recurso do sistema atribudo ou libertado. O problema disso que demora tempo. 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 - As polticas so: tempo de execuo partilhado (time-slices), prioridades, preempo e modificao dinmica das prioridades. 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 - 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 - Deve ser promovido quando bloqueado e relegado quando termina o seu time-slice. 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 - 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 - Devido ao melhor hardware que existe hoje em dia. 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 - O escalonamento preemptivo em modo utilizador, as prioridades ncleo so sempre superiores s prioridades utilizador. 21 - Prioridade = TempoProcessador/2 + PrioridadeBase 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 - Pois so aqueles que so mais essenciais de se executarem. 24 - Possibilita definir prioridades estticas superiores s dinmicas e so necessrias permisses. 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 - As chamadas de sistema do escalonamento so: nice(int val), int getpriority(int which, int id), setpriority(int which, int id, int prio). 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 - 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 - 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 - As duas primitivas so sleep_on (bloqueia sempre o processo) e wake_up (desbloqueia todos os processos). 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 - 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? 2 - O que o espao de endereamento? 3 - Quais as hierarquias de memria? 4 - O que um endereo real? E um virtual? 5 - Quais as limitaes de um endereamento real? 6 - O que o Overlay? 7 - Quais os tipos de parties e fragmentao do endereamento real?

8 - Como constituido o endereo virtual e quais os seus 2 tipos de blocos? 9 - Em que consiste o Princpio da Localidade de Referncia? Porque motivo torna a gesto em blocos eficiente? 10 - O que a segmentao? 11 - Qual o tipo de fragmentao da memria virtual segmentada? O que permite a proteco e a partilha de memria entre processos? 12 - O que a paginao? 13 - Qual a proteco e a partilha de memria entre processos que esta permite? 14 - Qual a dimenso da tabela de pginas com endereos virtuais e 32 bits e pginas de 4kBytes? 15 - Qual a vantagem das tabelas de pginas multi-nvel? 16 - Qual o problema da tabela de pginas invertida? 17 - Em que casos ocorre o swapping e o paging? 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? 19 - Quais os algoritmos de reserva de segmentos e qual o seu critrio de escolha de blocos livres? 20 - No que consiste o algoritmo Buddy? 21 - Quais as 3 situaes em que pode ocorrer a transferncia de blocos? 22 - Quais os possveis critrios para decidir qual o processo a transferir para disco? 23 - Quais os algoritmos de substituio de pginas? 24 - O que so working sets? 25 - Quais os casos que provocam transferncia (swapping)? 26 - Quais as consequncias da criao de um processo?

RESPOSTAS: 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 conjunto de posies de memria que um processo pode referenciar. 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 - 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 - 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 Overlay consiste na possibilidade de executar programas com dimenso superior memria principal em sistemas com endereamento real. 7 - As parties podem ser fixas ou variveis. A fragmentao interna no primeiro caso e externa no segundo. 8 - O espao de endereamento constituido por bloco e deslocamento. Os seus dois tipos de blocos so: segmentos e pginas. 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 - 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 - 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 - 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 - 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 - O tamanho de pgina 2^12 = 4Kbs. Logo o offset seria de 12 bits e o nmero de pginas 20. 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 - A tabela mapeia pginas fsicas em pginas virtuais, sendo o seu problema a latncia na traduo. Uma soluo usar TLB mais hash table. 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 - Os tipos de decises que o sistema operativo tem de tomar em relao memria principal so: reserva, tranferncia e substituio. 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 - 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 - Pode ocorrer on request, on demand, por prefetching. 22 - Os critrios so: estado e prioridade do processo, tempo de permanncia na memria principal, dimenso do processo. 23 - Os algoritmos so: ptimo, Least Recently Used(LRU), Not Recently Used(NRU), FIFO. 24 - o conjunto de pginas acedidas pelo processo no intervalo de tempo de um processo. 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 - Embora o fork duplique os segmentos de cdigo, dados e pilha do pai, no feita nenhuma cpia fsica de memria. 22 comments Leave a comment

Add to Memories Share Link Comments ( 22 comments Leave a comment ) (Anonymous) wrote: Oct. 28th, 2007 07:20 pm (UTC) OMFG Isto t brutal ! Obrigado pelo trabalho q tiveste ! Fox Link | Reply | Thread (Anonymous) wrote: Oct. 29th, 2007 08:18 pm (UTC) Queres-te casar comigo? Bin Link | Reply | Thread (Anonymous) wrote: Oct. 29th, 2007 08:35 pm (UTC) estava a brincar! Muito obrigado por isto! Link | Reply | Thread (Anonymous) wrote: Oct. 29th, 2007 08:47 pm (UTC) Tambm se fazem projectos aqui? ~ Ferreira Link | Reply | Thread (Anonymous) wrote: Oct. 29th, 2007 08:55 pm (UTC) Muito bom!

Link | Reply | Thread (Anonymous) wrote: Oct. 29th, 2007 09:00 pm (UTC) Hey Bin.. n te faas a minha futura namorada ;) Lolol A srio, t excelente :) Thank you very very much! Daikoni Link | Reply | Thread (Anonymous) wrote: Oct. 29th, 2007 09:03 pm (UTC) MUITO, mas mesmo MUITO bom! Obrigado! * Link | Reply | Thread (Anonymous) wrote: Oct. 29th, 2007 10:39 pm (UTC) Deviam de me ter avisado deste site mais cedo! Ta genial! Agradeo por todos os meus colegas da Alameda! Link | Reply | Thread (Anonymous) wrote: Oct. 30th, 2007 01:49 am (UTC) Obrigadao!! s um amor!!! Adoro-te tanto!! Obrigado por tudo!!! Ruben Farias LERCI Link | Reply | Thread (Anonymous) wrote: Oct. 30th, 2007 01:51 am (UTC) Site bombador!!! K site to bombador!! Bombador!!

Link | Reply | Thread (Anonymous) wrote: Oct. 30th, 2007 01:53 am (UTC) Joaninha.. xupa-me a pilinha! ASS: O perninhas! Link | Reply | Thread (Anonymous) wrote: Oct. 30th, 2007 09:09 am (UTC) Muito Obrigado Domo Arigatou Gozaimashitasu . Link | Reply | Thread (Anonymous) wrote: Oct. 30th, 2007 10:28 am (UTC) ve se que esta aqui muito estudo!!muito obrigado manuzes Link | Reply | Thread (Anonymous) wrote: Oct. 30th, 2007 11:45 am (UTC) Muito bom, granda trabalho que tiveste... Talvez a parte de que te falta no seis, de que um dos problemas com o monitor, de que para ele carregar um programa, tem de saber interpretar os seus dados, de forma a poder carreg-lo para a memria e por isso apenas um numero limitado de formatos de programas so reconhecidos... :P P.S.: Deste-nos uma grande ideia para as cbulas de EO... Link | Reply | Thread (Anonymous) wrote: Oct. 30th, 2007 03:14 pm (UTC) Resumos

Resumos para o 1 Teste (baseados nesta pagina e nos 2 livros) http://rapidshare.com/files/66270625/SO.doc Link | Reply | Thread (Anonymous) wrote: Jan. 10th, 2008 08:00 pm (UTC) 2o Teste nao ha por a ninguem com apontamentos para o 2o teste de dia 19 ? Link | Reply | Thread (Anonymous) wrote: Jan. 13th, 2008 05:01 pm (UTC) ya se alguem tivesse assim algo parecido com o que est aqui para o 2 teste (comunicao entre processos, Sistemas de ficheiros e I/O ) seria bastante util mesmo. Obrigado :D Link | Reply | Thread (Anonymous) wrote: Jan. 14th, 2008 10:14 am (UTC) Mais um a pedir. ~ Ferreira Link | Reply | Thread (Anonymous) wrote: Jan. 16th, 2008 04:03 pm (UTC) se alguem tiver apontamentos pa 2 parte da materia era genial... eu vou comecar a estudar hoje e tambem vou fazer... assim que tiver meto aqui pa malta Link | Reply | Thread (Anonymous) wrote: Nov. 5th, 2008 12:29 am (UTC) QUERO TER UM FILHO TEU!!! Link | Reply | Thread (Anonymous) wrote: Jan. 16th, 2009 07:14 pm (UTC)

muito bom! G, LEIC-A Link | Reply | Thread (Anonymous) wrote: Nov. 10th, 2010 12:15 am (UTC) Chumbei a SO por tua culpa Joaninha!!! Pensas que d para fazer uma cadeira s com apontamentos para o 1Teste?? -.(Mas sim, est muito bom o trabalho para o 1Teste... J no te espanco at morte... mandote s uma facada para aprenderes...) Para quem gosta de repetir cadeiras como eu: Grande jogo e gratis!! =D www.leagueoflegends.com Link | Reply | Thread ( 22 comments Leave a comment )

Profile kloatagus kloatagus Latest Month October 2006 S M T W T F S 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 View All Archives

Page Summary (Anonymous) : OMFG [+0] (Anonymous) : (no subject) [+0] (Anonymous) : (no subject) [+0] (Anonymous) : (no subject) [+0] (Anonymous) : (no subject) [+0] (Anonymous) : (no subject) [+0] (Anonymous) : (no subject) [+0] (Anonymous) : (no subject) [+0] (Anonymous) : Obrigadao!! [+0] (Anonymous) : Site bombador!!! [+0] (Anonymous) : (no subject) [+0] (Anonymous) : Muito Obrigado [+0] (Anonymous) : (no subject) [+0] (Anonymous) : (no subject) [+0] (Anonymous) : Resumos [+0] (Anonymous) : 2o Teste [+0] (Anonymous) : (no subject) [+0] (Anonymous) : (no subject) [+0] (Anonymous) : (no subject) [+0] (Anonymous) : (no subject) [+0] (Anonymous) : (no subject) [+0] (Anonymous) : (no subject) [+0] Powered by LiveJournal.com Designed by Lilia Ahner