You are on page 1of 8

Sistemas Operacionais I

Professor: Eder Pazinatto UNIRG / FAFICH


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$