JULIANO ROCHA BARBOSA Respostas Lista Cap. 1 e 2
1. Quais os dois principais objetivos dos sistemas operacionais? Os dois objetivos principais dos sistemas operacionais são: criar uma camada de abstraão entre o !ard"are e as ap#ica$es% com isso se tem uma inter&ace mais 'bonita( dispon)ve# para as ap#ica$es *ue rodaram no SO% e +erenciar os recursos de &orma e&iciente% &ornecendo uma a#ocaão ordenada e contro#ada de processadores% mem,rias e dispositivos de -.S entre os pro+ramas/ 2. Por que a abstração de recursos é importante para os desenvolvedores de aplicaçes? !la tem utilidade para os desenvolvedores desenvolvedores do pr"prio sistema operacional? Sistemas operacionais são camadas de so&t"are inseridas entre o !ard"are e as ap#ica$es% capa0 de orientar a uti#i0aão desses recursos &)sicos/ O objetivo 1 otimi0ar essa uti#i0aão/ -#e 1 respons2ve# por or+ani0ar o uso da m2*uina criando abstra$es como% por e3emp#o% um ar*uivo/ Um ar*uivo não 1 a#+o rea#% e sim apenas uma abstraão no n)ve# do usu2rio *ue corresponde a um +rupo espec)&ico de bits bit s arma0enados em um #oca# &)sico determinado/ -ssa abstraão de recursos serve para *ue o usu2rio possa usar a m2*uina atrav1s de uma inter&ace ami+2ve#% e#a 1 c!amada de virtua#i0aão de recursos/ Com a uti#i0aão dessa t1cnica% cada pro+rama tem a i#usão de estar sendo e3ecutado so0in!o% en*uanto na verdade est2 dividindo os recursos da m2*uina com outras ap#ica$es simu#t4neas/ A abstraã abstraãoo de recursos recursos 1 5ti# pois minimi0a minimi0a os conitos conitos no uso de !ard"are/ !ard"are/ Os pro+ramas e3ecutam e3ecutam mais rapidamente/ rapidamente/ #. $ %er&ncia de atividades permite compartil'ar o processador( e)ecutando mais de uma aplicação ao mesmo tempo. *denti+ique as principais vanta%ens tra,idas por essa +uncionalidade e os desa+ios a resolver para implement-la. A +er6ncia de atividades rea#i0a o comparti#!amento dos recursos de duas maneiras distintas 7no tempo e no espao8/ 9uando 9uan do um recurso recurso 1 comparti#! comparti#!ado ado no tempo% tempo% di&erentes di&erentes pro+rama pro+ramass ou usu2rios usu2rios a+uardam sua ve0 de us2#o/ ;or e3emp#o% com somente uma C;U e m5#tip#os pro+ramas precisando ser e3ecutados ne#a% o sistema operaciona# a#oca a C;U a um pro+rama% e ap,s este ser e3ecutado por tempo su&iciente% outro pro+rama obt1m seu uso% então outro e% por &im% o primeiro pro+rama novamente/ 9uando um recurso 1 comparti#!ado no espao% a mem,ria principa# 1 dividida entre v2rios pro+ramas em e3ecuão/ Assim% cada um pode residir ao mesmo tempo na mem,ria 7por e3emp#o% a &im de ocupar a C;U temporariamente8/ -3istindo mem,ria su&iciente para abri+ar m5#tip#os pro+ramas% 1 mais e&iciente mant6#os ne#a em ve0 de destinar toda a mem,ria a um
A vanta+em 1 *ue v2rios pro+ramas podem ser e3ecutados ao mesmo tempo% e maneira mais r2pida/ Um dos desa&ios para a imp#ementaão da +er6ncia de atividades 1 a mem,ria% pois caso não e3ista mem,ria su&iciente para abri+ar m5#tip#os pro+ramas% o processador não &uncionar2 de maneira tão e&iciente/
/. 0 que caracteri,a um sistema operacional de tempo real? Quais as duas classi+icaçes de sistemas operacionais de tempo real e suas di+erenças? Um sistema operaciona# de tempo rea# tem o tempo como par4metro &undamenta#/ ;or e3emp#o% em sistemas de contro#e de processos industriais% computadores de tempo rea# devem co#etar dados sobre o processo de produão e us2#os para contro#ar as m2*uinas na &2brica/ -#es se c#assi&icam em dois: a8 Sistema de tempo rea# cr)tico: as a$es precisam necessariamente ocorrer em determinados instantes 7ou em determinado interva#o de tempo8/ ;or e3emp#o% se um carro est2 se movendo por uma #in!a de monta+em% certas a$es devem ser rea#i0adas em momentos espec)&icos/ Se um rob= ro#dador rea#i0ar seu traba#!o > so#dar muito cedo ou muito tarde o carro estar2 perdido/ b8 Sistema de tempo rea# não cr)tico: o descumprimento ocasiona# de um pra0o% embora não desej2ve#% 1 aceit2ve# e não causa nen!um dano permanente/ Sistemas de 2udio di+ita# ou mu#tim)dia pertencem essa cate+oria/
. 0 que di+erencia o ncleo do restante do sistema operacional? O ?erne# 1 respons2ve# por ser o e#o do hardware 7parte &)sica8 com o software 7parte #,+ica8 do computador/ -m outras pa#avras% o principa# objetivo 1 +erenciar o computador e permitir *ue os ap#icativos sejam e3ecutados e &aam uso dos recursos *ue a m2*uina tem/ O n5c#eo tamb1m tem *ue +arantir% por e3emp#o% *ue a mem,ria RA@ seja usada em seu potencia# sem risco para o computador/ Assim *ue voc6 #i+a o computador% o ?erne# 1 acionado e comea a detectar todo o !ard"are *ue e#e possui e o *ue precisa para &uncionar 7monitor% p#aca de v)deo% etc/8/ epois *ue o sistema operaciona# 1 carre+ado% o n5c#eo assume outras &un$es: +erenciar os processos% os ar*uivos% a mem,ria e os dispositivos peri&1ricos% &a0endo com *ue e#e seja o 'or+ani0ador( de tudo o *ue acontece na m2*uina/
3. 4eria poss5vel construir um sistema operacional se%uro usando um processador que não ten'a n5veis de privilé%io? Por qu&? Não% pois os n)veis de privi#1+io são o *ue &ormam o sistema operaciona#/
Os n)veis de privi#1+io podem ser divididos em ap#icaão% bib#iotecas% sistema operaciona# e processador/ O n)ve# de ap#icaão 1 respons2ve# por e3ecutar a ap#icaão desejada pe#o usu2rio% possive#mente trocando in&orma$es com o mesmo/ As bib#iotecas são conjuntos de &un$es usadas pe#o pro+ramador para &a0er o pro+rama acessar recursos prote+idos da m2*uina/ O terceiro n)ve#% o sistema operaciona#% se encarre+a de e3ecutar as instru$es não privi#e+iadas de &orma a otimi0ar a uti#i0aão de recursos da m2*uina/ O n)ve# de processador 1 o principa#% onde o computador rea#mente 'pensa(/ udo o *ue acontece nos outros n)veis serve para simp#i&icar o uso do sistema atrav1s de instru$es% *ue o processador entende/ O conjunto de instru$es nãoprivi#e+iadas pode ser usado diretamente por todos os n)veis acima/ O conjunto de instru$es privi#e+iadas% por1m% s, pode ser usado pe#o sistema operaciona#/ -sses dois conjuntos são as inter&aces entre o processador e os outros n)veis/ 6. 0 processador Pentium possui dois bits para de+inir o n5vel de privilé%io( resultando em / n5veis distintos. $ maioria dos sistemas operacionais para esse processador usa somente os n5veis e)tremos 78 e #( ou 882 e 112 9. :averia al%uma utilidade para os n5veis intermedi-rios? Sim% os n)veis intermedi2rios são usados em t1cnicas de virtua#i0aão nas p#ata&ormas Inte#.A@% essa virtua#i0aão se baseia na reduão de privi#1+ios do sistema operaciona# convidado: o !ipervisor e o sistema operaciona# !ospedeiro e3ecutam no n)ve# % o sistema operaciona# convidado e3ecuta no n)ve# D ou E e as ap#ica$es do sistema convidadoe 3ecutam no n)ve# F/ -ssas &ormas de estruturaão de sistema são denominadas 'mode#o .D.F( e mode#o '.E.F(% respectivamente/ A &i+ura a se+uir e3emp#i&ica o uso dos n)veis de proteão em processadores A@.Inte#:
8;9 Quais as di+erenças entre interrupçes( e)ceçes e traps? Interrupão: G causada por dispositivos e3ternos ao processador/ Nesse caso o processador suspende seu u3o de e3ecuão corrente e desvia para um endereo pr1de&inido% onde se encontra uma rotina de tratamento de interrupão/
-3ce$es: São eventos +erados pe#o pr,prio processador% *ue podem ocasionar o desvio de e3ecuão usando o mesmo mecanismo das interrup$es/ raps: São eventos causados pe#o pr,prio processador/ ;odese di0er *ue 1 uma interrupão *ue comuta o processador para o n)ve# privi#e+iado e procede de &orma simi#ar ao tratamento de uma interrupão/
8<9 Quais as implicaçes de mascarar interrupçes? 0 que pode ocorrer se o processador i%norar interrupçes por muito tempo? 0 que poderia ser +eito para evitar o mascaramento de interrupçes? Os processadores t6m tipicamente uma m2scara interna de interrupão com o *ue permite o sot&"are i+norar toda interrupão de !ard"are e3terno ao mesmo tempo *ue 1 de&inido/ -sta m2scara pode o&erecer acesso mais r2pido do *ue acessar o re+istro da m2scara de interrupão 7I@R8 em um ;IC% ou desabi#itar as interrup$es do pr,prio dispositivo/ -m a#+uns casos% como a da ar*uitetura 3% desabi#itar e !abi#itar as interrup$es no pr,prio processador% como uma barreira de mem,ria% e#e pode ser de &ato mais #ento/ Se o processador i+norar interrup$es por demasiado tempo% e#e processador perde tempo para varrer todos os dispositivos do sistema para veri&icar se !2 eventos a serem tratados ou não/ ;ara evitar o mascaramento de interrup$es% uma so#uão seria construir &un$es de entrada.sa)da ass)ncronas% ou seja% o processador não precisa esperar a conc#usão de cada operaão so#icitada a um dispositivo% pois o dispositivo +era uma interrupão para 'avisar( o processador *uando a operaão &or conc#u)da/
18. 0 comando em lin%ua%em C +open é uma c'amada de sistema ou uma +unção de biblioteca? Por qu&? O comando em #in+ua+em C &open 1 uma &unão de uma bib#ioteca/ ;ara abrir% a#terar ou criar um ar*uivo em seu H 1 necess2rio criar uma esp1cie de v)ncu#o entre seu pro+rama e um determinado endereo de mem,ria% onde est2 #oca#i0ado 7ou vai se #oca#i0ar8 o ar*uivo/ -ssa #i+aão 1 um pouco mais comp#e3a e de bai3o n)ve#% mas isso não ser2 motivo de preocupaão% pois na #in+ua+em C e3iste um tipo de dado% o FILE % *ue serve para traba#!armos especi&icamente com ar*uivos% e j2 est2 inc#usive na bib#ioteca padrão do C% assim% podemos usar sem nos preocupar em inc#uir bib#ioteca ou criar a#+um c,di+o/ A operaão de associaão 1 con!ecida como abertura do ar*uivo e 1 e3ecutada pe#a &unão &open 7K file open8/ O primeiro ar+umento da &unão 1 o nome do ar*uivo e o se+undo ar+umento 1 r ou " para indicar se o ar*uivo deve ser aberto para #eitura 7K read 8 ou para escrita 7K write8/ A &unão &open devo#ve o endereo de um file 7ou null, se não encontrar o ar*uivo especi&icado8/
11. =onte uma tabela com os bene+5cios e de+ici&ncias mais si%ni+icativos das principais arquiteturas de sistemas operacionais.
>ome
anta%ens
@esvanta%ens
Sistemas @ono#)ticos
Mrande desempen!o/
O sistema pode parar por causa de um erro/
Sistemas em Camadas
om)nio das redes de computadores/
emora no pedido da ap#icaão% prejudicando o desempen!o do sistema/
Sistemas @icron5c#eos
Robuste0 e e3ibi#idade/
Custo associado s trocas de mensa+ens muito e#evado/
@2*uinas irtuais
-vita a construão de novas ap#ica$es ou adaptaão das j2 e3istentes/
Custo adiciona# de e3ecuão dos processos na m2*uina virtua# em comparaão com a m2*uina rea#/
12. Relacione as a+irmaçes aos respectivos tipos de sistemas operacionaisA distribu5do 7@9( multiusu-rio 7=9( desBtop 79( servidor 749( embarcado 7!9 ou de temporeal 7D9A P D Q eve ter um comportamento tempora# previs)ve#% com pra0os de resposta c#aramente de&inidos/ P 4 Q Sistema operaciona# usado por uma empresa para e3ecutar seu banco de dados corporativo/ P ! Q São tipicamente usados em te#e&ones ce#u#ares e sistemas e#etr=nicos dedicados/ P @ Q Neste tipo de sistema% a #oca#i0aão &)sica dos recursos do sistema computaciona# 1 transparente para os usu2rios/ P = Q odos os recursos do sistema t6m propriet2rios e e3istem re+ras contro#ando o acesso aos mesmos pe#os usu2rios/ P ! Q A +er6ncia de ener+ia 1 muito importante neste tipo de sistema/ P Q Sistema *ue priori0a a +er6ncia da inter&ace +r2&ica e a interaão com o usu2rio/ P 4 Q Constru)do para +erenciar de &orma e&iciente +randes vo#umes de recursos/ P Q O @acOS 1 um e3emp#o t)pico deste tipo de sistema/ P ! Q São sistemas operacionais compactos% constru)dos para e3ecutar ap#ica$es espec)&icas sobre p#ata&ormas com poucos recursos/
1#. $ operação em modo usu-rio permite ao processador e)ecutar somente parte das instruçes dispon5veis em seu conjunto de instruçes. Quais das se%uintes operaçes não deveriam ser permitidas em n5vel usu-rio? Por qu&? 7a9 Ler uma porta de entrada.sa)da 7b9 -&etuar uma divisão inteira 7c9 -screver um va#or em uma posião de mem,ria 7d9 Ajustar o va#or do re#,+io do !ard"are 7e9 Ler o va#or dos re+istradores do processador
7+9 @ascarar uma ou mais interrup$es RespostaA Letras 'c( -screver um va#or em uma posião de mem,ria% e '&( @ascarar uma ou mais interrup$es% pois o !ard"are ao rea#i0ar a tentativa de e3ecuão dessas opera$es ir2 +erar uma e3ceão e abortar as opera$es so#icitadas pe#o 'n)ve# de usu2rio( e no caso do "indo"s mostrar2 a se+uinte mensa+em: 'este pro+rama e3ecutou uma instruão i#e+a# e ser2 &ina#i0ado(/ D%DT 13. Considere as a+irmaçes a se%uir( relativas aos diversos tipos de sistemas operacionaisA I/ -m um sistema operaciona# de tempo rea#% a rapide0 de resposta 1 menos importante *ue a previsibi#idade do tempo de resposta/ II/ Um sistema operaciona# mu#tiusu2rios associa um propriet2rio a cada recurso do sistema e +erencia as permiss$es de acesso a esses recursos/ III/ Nos sistemas operacionais de rede a #oca#i0aão dos recursos 1 transparente para os usu2rios/ I/ Um sistema operaciona# de tempo rea# deve priori0ar as tare&as *ue intera+em com o usu2rio/ / Um sistema operaciona# embarcado 1 projetado para operar em !ard"are com poucos recursos/ Indi*ue a a#ternativa correta: 7a8 As a&irma$es II e III estão corretas/ 7b8 Apenas a a&irmaão est2 correta/ 7c8 As a&irma$es III e I estão erradas/ 7d8 As a&irma$es III% I e estão erradas/ 7e8 odas as a&irma$es estão erradas/
RespostaA Letra 'e(/ C$PEDFL0 2 1. Um ;CB 1 uma estrutura *ue cont1m in&orma$es pertinentes ao processo re#acionado a e#e% e#e 1 usado durante a troca de conte3to e 1 criado no momento da criaão de um processo/ -#e cont1m dados como identi&icador do processo% prioridade% estado 7s#eepin+% ativo8% o espao de mem,ria associado a e#e% entre outras in&orma$es/ 2. É um conceito que foi criado para impedir a monopolização do processador por parte de um processo quando este passa um longo tempo sem terminar sua execução(Ou nucna termina) e sem executar tarefas e entrada/saída. Nessa solução cada tarefa recebe um tempo limite denominado quantum quando este tempo termina a tarefa ! suspensa e "olta para a fila de tarefas pendentes. 3. Relacione as a+irmaçes abai)o aos respectivos estados no ciclo de vida das tare+as 7>A >ova( PA Pronta( !A !)ecutando( 4A 4uspensa( DA Derminada9A G > H 0 c"di%o da tare+a est- sendo carre%ado. G P H $ tare+as são ordenadas por prioridades. G ! H $ tare+a sai deste estado ao solicitar uma operação de entradaIsa5da. G D H 0s recursos usados pela tare+a são devolvidos ao sistema. G P H $ tare+a vai a este estado ao terminar seu quantum. G P H $ tare+a s" precisa do processador para poder e)ecutar. G 4 H 0 acesso a um sem-+oro em uso pode levar a tare+a a este estado. G ! H $ tare+a pode criar novas tare+as.
G ! H :- uma tare+a neste estado para cada processador do sistema. G 4 H $ tare+a a%uarda a ocorr&ncia de um evento e)terno. 6. R!4P04D$A ;. <. O que são threads e para que servem? !reads são cada u3o de e3ecuão em um pro+rama% cada u3o desse pode ser associado ao n5c#eo 7t!reads de n5c#eo8 do sistema ou a um processo 7t!reads de usu2rio8/ As t!reads permitem para#e#ismo de &orma mais simp#es *ue a criaão de novos processos% sendo cada t!read uma #in!a de e3ecuão di&erente em um pro+rama% o usu2rio pode criar v2rias e3ecu$es simu#t4neas mais &aci#mente/ 18. Quais as principais vantagens e desvantagens de threads em relação a processos? Vantagens: São mais fáceis de criar e nalizar do que processos. Permite que os processos sejam divididos em múltiplas linhas de eecu!ão" o que melhora o desempenho. #acilita o desempenho no ponto de que torna$se mais fácil testar e desenvolver o programa em m%dulos. &esvantagens: 'sar threads pode adicionar um n(vel de compleidade a mais ao programa" por eemplo" se as threads precisarem se comunicar. &ependendo do modelo de implementa!ão )por conta das formas gerencia de threads*" se uma thread solicitar uma opera!ão de entrada+sa(da todas as threads terão de car esperando esta opera!ão ser conclu(da. ,uando as threads não são tratadas diretamente pelo sistema operacional" um programa com - threads terá o mesmo tempo de processador de um programa de - única thread. 11. Jorneça dois e)emplos de problemas cuja implementação multi-thread não tem desempen'o • •
•
•
•
mel'or que a respectiva implementação sequencial. O mode#o de threads D:D 1 ade*uado para a maioria das situa$es e serve bem a maioria das ap#ica$es/ ;or1m% 1 pouco esca#2ve#: a criaão de um +rande n5mero de threads imp$e um car+a si+ni&icativa ao n5c#eo do sistema% inviabi#i0ando ap#ica$es com muitas tare&as/ 12. $ssocie as a+irmaçes a se%uir aos se%uintes modelos de t'readsA a9 manKtoone 7>A19 b9 onetoone 71A19 c9 manKtomanK 7>A=9A G a H Dem a implementação mais simples( leve e e+iciente. G c H =ultiple)a os t'reads de usu-rio em um pool de t'reads de ncleo. G b H Pode impor uma car%a muito pesada ao ncleo. G a H >ão permite e)plorar a presença de v-rias CPFs pelo mesmo processo. G c H Permite uma maior concorr&ncia sem impor muita car%a ao ncleo. G a H Meralmente implementado por bibliotecas. G b H N o modelo implementado no Oindos >D e seus sucessores. G a H 4e um t'read bloquear( todos os demais t&m de esperar por ele. G c H Cada t'read no n5vel do usu-rio tem sua correspondente dentro do ncleo.
G c H N o modelo com implementação mais comple)a. 1#.
1/. -#e atribui &ra$es de tempo para cada processo em partes i+uais e de &orma circu#ar% Round Robin 1 um dos a#+oritmos mais simp#es e &2ceis de imp#ementar usado para a+endamento de processos/ 1. - K t* . t* ttc 13. Serve para evitar a inani!ão e garantir a proporcionalidade epressa atrav/s das prioridades estáticas. 0ste m/todo indica há quanto tempo uma tarefa está aguardando o processador e aumenta sua prioridade proporcionalmente. 1ssim ele evita que processos com prioridade mais 2aia nunca sejam eecutados. 17. 18. 19. 1 inversão de prioridades ocorre quando um processo de 2aia prioridade usa um recurso e impede que um processo de alta prioridade que tam2/m necessita desse recurso continue sua eecu!ão" dessa forma o processo de mais alta prioridade ca suspenso esperando o de 2aia prioridade concluir sua opera!ão. 3 protocolo de heran!a de prioridade mais simples consiste em aumentar temporariamente a prioridade do processo de menor prioridade que det/m o recurso de uso eclusivo do recurso em uso. 4sso faz com que o processo que está usando o recurso seja eecutado mais rapidamente" li2erando o recurso o quanto antes.