Cincia da Compta!"o Per#odo: $%%&'$ (') Estrtra e Componentes de m Sistema Operaciona* (')'( Conceitos de Sistema Operaciona* S+e** O Shell interpretador de comandos nos sistemas baseados em UNIX(possui diversos Shells, entre eles: sh,csh,ksh e bash), sua fun!o e ler e interpretar os comandos "ue s!o di#itados no terminal$ O Shell n!o fa% parte do sistema operacional, mas usa os seus recursos para reali%ar chamadas ao sistema operacional & #erenciar e manipular processos$ 'uando o usu(rio efetua o lo#in no sistema operacional o Shell e inciali%ado e fica pronto para receber um comando enviado pelo usu(rio$ )om isto, o Shell permite "ue os usu(rios intera*am com o sistema$ +or e,emplo: - o usu(rio di#ita um comando "ue re"uisita a compila!o de um pro#rama$ .o#o o Shell cria um processo "ue e,ecutar( a compilador$ 'uando o processo termina a compila!o o Shell e,ecuta uma chamada do sistema(S/stem )alls) para encerrar o processo$ 0ambm podemos considerar "ue o Shell a interface primaria entre o usu(rio 1 frente do terminal e o sistema operacional$ Nos sistemas baseados em UNIX, um caractere como o sinal de cifr!o (2), informa ao usu(rio "ue o Shell est( esperando receber um comando(tal como o date) assim "ue o comando di#itado o Shell dispara o processo e espera sua resposta$ 3l#uns e,emplos da utili%a!o de comandos no Shell: , date -fi*e : sa4da padr!o e direcionado para o ar"uivo chamado file5 , sort .fi*e( -fi*e$ : pe#a a entrada de file6 e envia para a sa4da de file75 , cat fi*e( fi*e$ fi*e& fi*e) / sort-/de0/teste : o pro#rama cat concatena os 8 ar"uivos e envia a sa4da para sort or#ani%ar todas as linhas em ordem alfabtica$ 3 sa4da de sort e redirecionada para o ar"uivo dev9teste$ , caractere 1 : usando este caractere no final de um comando o Shell n!o espera completar a e,ecu!o, cria um *ob para esse processo e apresenta novamente o prompt para di#ita!o de um novo comando$ S/stem )alls & )hamadas de Sistema Interface entre o Sistema Operacional e os pro#ramas do usu(rio5 3s chamadas se diferem de SO para SO, no entanto, os conceitos relacionados 1s chamadas s!o similares independentemente do SO5 3penas uma chamada de sistema pode ser reali%ada em um instante de tempo (ciclo de rel:#io) pela )+U5 0;3+: instru!o utili%ada para reali%ar chamadas ao Sistema Operacional5 <,emplo: Instru!o do UNIX: count = read(fd,buffer,nb/tes)5 ---- )hamadas de sistemas fornecem a interface entre um pro#rama em e,ecu!o e o sistema operacional$ & Normalmente dispon4veis como instru>es em lin#ua#em assembl/$ & .in#ua#ens criadas para substituir o assembl/ na pro#rama!o de sistemas permitem a invoca!o de chamadas de sistemas diretamente (e,$: ), ?liss, +<;., +.9@AB) C 0rDs mtodos #erais s!o empre#ados na passa#em de parEmetros entre pro#ramas em e,ecu!o e o sistema operacional$ & +assa#em de parEmetros em re#istradores$ & 3rma%enar os parEmetros em uma tabela na mem:ria, e passar o endereo da tabela como parEmetro em um re#istrador$ & O pro#rama empilha (push) os parEmetros na pilha, e o sistema operacional os desempilha (pop)$ 0;3+: instru!o utili%ada para reali%ar chamadas ao Sistema Operacional5 <,emplo: Instru!o do UNIX: count = read(fd,buffer,nb/tes)5 0;3+: instru!o utili%ada para reali%ar chamadas ao Sistema Operacional5 <,emplo: Instru!o do UNIX: count = read(fd,buffer,nb/tes)5 O pro#rama sempre deve checar o retorno da chamada de sistema para saber se al#um erro ocorreuFFF 0ipos de chamadas: )hamadas para #erenciamento de processos: Gork ()reate+rocess & HIN@7) & cria um processo5 )hamadas para #erenciamento de diret:rios: Iount & monta um diret:rio5 )hamadas para #erenciamento de ar"uivos: )lose ()loseJandle & HIN@7) & fechar um ar"uivo5 Outros tipos de chamadas: )hmod: modifica permiss>es (HINN0 possui essa chamada)5 2erne* Kernel um pro#rama "ue funciona diretamente sobre JH, sendo locali%ado em um ar"uivo do sistema operacional$ O Kernel formado por um con*unto de rotinas "ue oferecem servios aos usu(rios do sistema e suas aplica>es, bem como a outras rotinas do pr:prio sistema$ Sua tarefa principal iniciali%ar os dispositivos e #erenciar o sistema operacional, por isto, ele fica e,ecutando at "ue o computador ate "ue ele se*a desli#ado$ Levido a sua importEncia ele e,ecutado em modo privile#iado no sistema operacional$ Suas principais fun>es sao: - fornecer um es"uema para e,ecu!o de pro#ramas5 - opera>es de acesso ao hardMare5 - dar base a servios como entrada e sa4da e #est!o de ar"uivos5 - serve de interface para esses servios$ O Kernel o nNcleo do sistema Operacional$ 3 se#uir apresentamos uma fi#ura "ue representa a vis!o do Kernel para o sistema operacional: Servios de rede Entrada/ Sada Arquivos Processos Memria Usurios Segurana Interface grfica kernel Estrtra dos Sistemas Operacionais Os sistemas operacionais s!o formados por um con*unto de m:dulos com entrada, sa4da e funcionalidade bem definidas, prestando servios aos usu(rios "ue fa%em solicita>es atravs de chamadas de sistema(S/stem )alls)$ O sistema operacional #erencia recursos como processos, mem:ria e ar"uivos$ Na estrutura do sistema operacional veremos a forma como o c:di#o do sistema or#ani%ado e o inter-relacionamento entre seus diversos componentes$ +rincipais tipos de estruturas: Ionol4ticos5 <m camadas5 I("uinas Oirtuais5 )liente-Servidor5 <volu!o: cliente-servidor em um sistema distribu4do5 Ionol4tico N!o h( uma estrutura!o vis4vel5 O Sistema Operacional um con*unto de processos "ue podem intera#ir entre si a "ual"uer momento sempre "ue necess(rio5 0odos os processos s!o compilados individualmente e depois li#ados uns aos outros em um Nnico ar"uivo-ob*eto5 )ada processo possui uma interface bem definida com rela!o aos parEmetros e resultados para facilitar a comunica!o com os outros processos5 Os servios (chamadas) re"uisitados ao sistema s!o reali%ados por meio da coloca!o de parEmetros em re#istradores ou pilhas de servios se#uida da e,ecu!o de uma instru!o chamada 0;3+5 6$ 3 instru!o 0;3+ reali%a o chaveamento da m("uina do modo usu(rio para o modo kernel e transfere o controle para o Sistema Operacional5 7$ 3p:s a e,ecu!o da instru!o 0;3+, o Sistema Operacional e,amina os parEmetros da chamada para determinar "ual chamada deve ser e,ecutada5 @$ <m se#uida, o Sistema Operacional inde,a em uma tabela um ponteiro para o processo respons(vel pela e,ecu!o da chamada5 8$ 3o final, a chamada conclu4da e o controle volta ao pro#rama do usu(rio (modo usu(rio)5 Lesenho@A e @P <m camadas +ossui uma hierar"uia de n4veis5 +rimeiro sistema em camadas: 0J< (ideali%ado por <$H$ Li*kstra)5 +ossu4a A camadas, cada "ual com uma fun!o diferente5 Sistema em batch muito simples5 @7k palavras na mem:ria, cada uma com 7P bits5 Lesenho @Q, 8B,86,87,8@$$8R Ia"uina Oirtual <volu!o do OS9@AB para o 0SS9@AB: )ompartilhamento de tempo (0imeSharin#)5 0anto a multipro#rama!o "uanto a interface com o hardMare eram reali%adas pelo mesmo processo & sobrecar#a #erando alto custo5 Sur#e o )+9)IS OI9@PB Luas fun>es distintas em processos distintos: 3mbiente para multipro#rama!o5 I("uina estendida com interface para o hardMare5 +rincipais conceitos: Ionitor da I("uina Oirtual (OII): roda sobre o hardMare e implementa multipro#rama!o fornecendo v(rias m("uinas virtuais o cora!o do sistema5 )IS ()onversational Ionitor S/stem): 0imeSharin#5 <,ecuta chamadas ao Sistema Operacional5 I("uinas virtuais s!o c:pias do hardMare, incluindo os modos kernel e usu(rio, entrada9sa4da, interrup>es, etc$5 )ada m("uina pode rodar um Sistema Operacional diferente5 desenho 8S 3tualmente, a idia de m("uina virtual utili%ada em conte,tos diferentes: +ro#ramas IS-LOS: rodam em computadores Intel e Iicrosoft5 3s chamadas feitas pelo IS-LOS ao Sistema Operacional s!o reali%adas e monitoradas pelo monitor da m("uina virtual (OII)5 +ro#ramas T3O3 (I("uina Oirtual Tava-TOI): o compilador Tava produ% c:di#o para a TOI$ <sse c:di#o e,ecutado pelo interpretador Tava: pro#ramas Tava rodam em "ual"uer plataforma, independentemente do Sistema Operacional5 Oanta#ens Gle,ibilidade5 Ianutenibilidade5 Lesvanta#em: Simular diversas m("uinas virtuais n!o uma tarefa simples sobrecar#a5 )liente ;edu%ir o Sistema Operacional a um n4vel mais simples: Kernel: implementa a comunica!o entre processos clientes e processos servidores NNcleo m4nimo5 Iaior parte do Sistema Operacional est( implementado como processos de usu(rios (n4vel mais alto de abstra!o)5 Sistemas Operacionais Iodernos5 3te RR desenho Estrtra do Sistema Operaciona* <strutura dos Sistemas Operacionais UerDncia de processos UerDncia de mem:ria UerDncia de mem:ria secund(ria UerDncia de ar"uivos UerDncia de entrada9sa4da UerDncia de comunica!o em rede Sistema de prote!o Interface com o usu(rio Sistemas Ionol4ticos n 3r"uitetura mais comum n Sistema operacional formado por uma cole!o de procedimentos com interface e funcionalidade bem definidas n Os procedimentos n!o est!o estruturados de uma forma espec4fica n Sistemas em )amadas n Sistema operacional formado por camadas n )ada camada tem uma fun!o espec4fica n Uma camada utili%a servios da camada inferior e fornece servios 1 superior Estrtra dos Sistemas Operacionais <,iste uma #rande dificuldade em compreender a estrutura e o funcionamento de um SO, pois ele n!o e,ecutado como uma aplica!o tipicamente se"Vencial, com in4cio, meio e fim$ 3s rotinas do sistema s!o e,ecutadas sem uma ordem predefinida, baseada em eventos dissociados do tempo (eventos ass4ncronos)$ Iuitos desses eventos est!o relacionados ao hardMare e a tarefas internas do pr:prio SO$ O SO formado por um con*unto de rotinas (procedimentos) "ue oferecem servios aos usu(rios do sistema e suas aplica>es, bem como para as outras rotinas do pr:prio sistema$ <sse con*unto de rotinas chamado nNcleo do sistema ou kernel (crebro)$ 3s principais fun>es do nNcleo s!o: 0ratamento de interrup>es5 )ria!o e elimina!o de processos5 Sincroni%a!o e comunica!o entre processos5 <scalonamento e controle dos processos5 UerDncia de mem:ria5 UerDncia do sistema de ar"uivos5 Opera>es de entrada e sa4da5 )ontabili%a!o e se#urana do sistema$ Copiar o es3ema do 3adro 3 estrutura do SO, ou se*a, a maneira como o c:di#o do sistema or#ani%ado e o inter-relacionamento entre seus diversos componentes, pode variar conforme a concep!o do pro*eto$ <,istem basicamente trDs aborda#ens no desenvolvimento de SOs, mas inicialmente estudaremos o "ue s!o as s/stem calls e o mecanismo de modos de acesso$ S4stem Ca**s & Uma preocupa!o "ue sur#e na #rande maioria dos pro*etos de SOs a implementa!o de mecanismos de prote!o ao nNcleo do sistema e de acesso aos seus servios$ )aso uma aplica!o, "ue tenha acesso ao nNcleo, reali%e uma opera!o "ue o danifi"ue, todo o sistema poder( ficar comprometido e inoperante$ O usu(rio (ou aplica!o), "uando dese*a solicitar al#um servio do sistema, reali%a uma chamada a uma de suas rotinas (ou servios) atravs de s/stem calls (chamadas ao sistema), "ue s!o a porta de entrada para se ter acesso ao nNcleo do SO$