You are on page 1of 49

Universidade Federal de Santa Maria UFSM

Colgio Tcnico Industrial de Santa Maria - CTISM

Sistemas Operacionais I
Prof. Aline Kronbauer

alyne.k@gmail.com
AULA 09
Santa Maria/RS

Cronograma
08/09 Chamadas de sistema: introduo, interrupes e excees
09/09 Operaes de entrada/sada, buffering, spooling e reentrncia
15/09 Exerccios de Fixao e Reviso

16/09 PROVA (Todo contedo visto at a aula 10 09/09)

09/09/2016

SISTEMAS OPERACIONAIS II

Shell
Programa de usurio que oferece uma interface personalizvel para sistemas
Interface de texto interativa para o sistema operacional
Interpretador de Comandos

Ambiente de execuo de outros programas, consistindo em um nmero de variveis de


ambiente
Oferecem possibilidade de programao
Programas completos podem ser descritos nas linguagens dos shells
Podem ser salvos na forma de scripts

Existem shels grficos e shels texto

09/09/2016

SISTEMAS OPERACIONAIS II

Shell
Shells so ento Interpretadores de comandos, programas de computador responsveis por
tomar as aes efetivas conforme a orientao do usurio atravs de comunicao textual.
Os interpretadores de comandos permitem aos usurios emitirem vrios comandos
Requer do usurio conhecimento de tais comandos e seus parmetros, alm da sintaxe da linguagem
interpretada.

09/09/2016

SISTEMAS OPERACIONAIS II

Shell
Shells so personalizveis
Podem ajustar o ambiente operacional

So distintos do kernel
Executados para uso interativo pelos usurios, e para uso no-interativo pelo sistema
Usam vrios arquivos de configurao para seus ambientes operacionais
Podem ser executados dentro de outros shells

09/09/2016

SISTEMAS OPERACIONAIS II

Exemplos de Shells
Sh Bash Derivado do Sh
Ksh

Csh
Tcsh

Pode-se instalar shells extras usando:


sudo apt-get install nome_shell
Ex: csh, ksh

09/09/2016

SISTEMAS OPERACIONAIS II

Console de Comandos
Uma aplicao prtica de um interpretador de comandos a linha de comandos, ou o console
de comandos, tambm chamado shell para os sistemas do tipo Unix
uma interface textual que interpreta os comandos existentes em um sistema operativo e os
envia ao ncleo imprimindo posteriormente o resultado do processamento na tela

09/09/2016

SISTEMAS OPERACIONAIS II

Terminal Linux
Imagem de um terminal Linux
Primeira linha traz informaes sobre
Usurio
Estao
Diretrio Atual
....

09/09/2016

SISTEMAS OPERACIONAIS II

Terminal Linux

09/09/2016

SISTEMAS OPERACIONAIS II

Shell
O shell uma ferramenta poderosa dos sistemas
GNU/Linux
interessante para aqueles que querem se aventurar no
mundo Linux aprenderem alguns comando bsicos.

09/09/2016

SISTEMAS OPERACIONAIS II

10

Entrada e Sada de Comandos


Stdin

Standard Input - Entrada de dados padro no Shell


Teclado, pipe

Stdout

Standard Output Sada padro


Tela, arquivo
possvel redirecionar a sada de qualquer comando para um arquivo com o uso de direcionadores
<comando> > sada.txt
<comando> >> sada.txt

Stderr

Sada padro para erros de execuo do comando


Tela, arquivo

09/09/2016

SISTEMAS OPERACIONAIS II

11

Diretrios
Pasta Pessoal
Fica em /home/usurio
~/ - atalho para /home/usurio

./ ..//
./ - Pasta atual
../ - Pasta acima

Case sensitive
Significa que pode-se criar um pasta Casa, outra CASA e outra casa no mesmo diretrio

09/09/2016

SISTEMAS OPERACIONAIS II

12

Sistemas monoprogramveis
Somente um programa pode ser executado de cada vez
Processador permanece dedicado exclusivamente a uma tarefa apenas, ficando ocioso
enquanto uma operao de leitura em disco realizada
Tempo de espera relativamente longo, j que as operaes de E/S so muito lentas se
comparadas velocidade de operao do processador
Sub-utilizao da memria principal
Um programa nem sempre ocupa todo o espao disponvel, deixando todo o restante inutilizado

09/09/2016

SISTEMAS OPERACIONAIS II

13

Sistemas multiprogramveis
A possibilidade de um processador executar instrues em paralelo com operaes de entrada e
sada permite que diversas tarefas sejam executadas concorrentemente.
este conceito de concorrncia o princpio fundamental para o projeto e implementao de
sistemas multiprogramveis.
Os sistemas multiprogramveis surgiram a partir das limitaes dos sistemas monoprogramveis

Recursos computacionais como processador, memria e dispositivos de E/S (Entrada/Sada) eram utilizados de
maneira muito pouco eficiente
Limitavam seu desempenho com muitos destes recursos permanecendo ociosos por longos perodos de
tempo

Nos sistemas multiprogramveis vrios programas podem ser alocados na memria

Programas concorrendo pelo uso do processador


Quando um programa solicita uma operao de E/S, outros programas podero utilizar o processador,
deixando a CPU menos ociosa
Torna o uso da memria mais eficiente, pois existem vrios residentes se revezando ao mesmo tempo na
utilizao do processador

09/09/2016

SISTEMAS OPERACIONAIS II

14

SISTEMAS MONOPROGAMAVEIS vs MULTIPROGRAMAVEIS


Os sistemas operacionais multiprogramaveis surgiram a partir de limitaes existentes nos SO
monoprogramaveis.

E/ S

UCP

E/ S

UCP

livre

tempo
(a) Sistema Monoprogramvel

tempo
(b) Sistema Multiprogramvel

Em sistemas monoprogramveis somente um programa pode estar em execuo, fazendo


com que ocorra desperdcio de processador (ex.: leitura em disco sendo realizada)

15

Interrupes e Excees
A utilizao concorrente da CPU deve ser feita de maneira que, quando um programa perde o
uso do processador e depois retorna para continuar sua execuo, seu estado deve ser idntico
ao do momento em que foi interrompido
O programa dever continuar sua execuo exatamente na instruo seguinte quela onde
havia parado, deixando transparente ao usurio mostrando que nada aconteceu ou nada foi
alterado
Em sistemas de tempo compartilhado existe a impresso de que o computador
est inteiramente dedicado ao usurio, ficando esse mecanismo totalmente transparente aos
usurios

09/09/2016

SISTEMAS OPERACIONAIS II

16

INTERRUPES OU EXCEES
So eventos inesperados que podem acontecer durante a
execuo de um programa.
A diferena entre interrupo e exceo dada pelo tipo
de evento ocorrido (sinalizao de algum dispositivo
externo ao processador), porm alguns autores e
fabricantes no fazem esta distino.
A interrupo o mecanismo que tornou possvel a
implementao na concorrncia nos computadores, sendo
o fundamento bsico dos sistemas multiprogramveis.
O SO sincroniza a execuo de todas as suas rotinas e dos
programas dos usurios, alm de controlar os dispositivos;
sempre gerada por algum evento externo ao programa;
Ao final da execuo de cada instruo, a unidade de controle
verifica a ocorrncia de algum tipo de interrupo;

17

OPERAES DE ENTRADA E SADA


Nos primeiros sistemas computacionais a comunicao entre
processador e os perifricos era controlada por um conjunto de
instrues especiais, denominadas instrues de entrada/sada.
Armazenavam detalhes especficos de cada perifrico (trilha ou setor de
um disco que o dado deveria ser gravado);
Forte dependncia entre o processador e os dispositivos de I/O.

UCP

Com o surgimento do controlador ou interface o processador passou


a agir de maneira independente dos dispositivos de E/S.
O processador no se comunica mais diretamente com os perifricos;
Simplificou as operaes de E/S.

Memria
Principal

Canal de E/ S

Controlador

Controlador

Dispositivos de E/ S

Dispositivos de E/ S

18

BUFFERING
A tcnica de buffering consiste na utilizao de uma rea na memria principal,
denominada buffer.
Funo: permitir que em uma operao de leitura o dado seja transferido
primeiramente para o buffer, liberando imediatamente o dispositivo de entrada
para realizar uma nova leitura.
Minimiza o problema da disparidade da velocidade de processamento existente entre o processador e os
dispositivos de entrada e sada.
Objetivo: manter a maior parte do tempo o processador e dispositivos de E/S ocupados.
A unidade de transferncia usada o registro, sendo que o tamanho do registro pode ser especificado em
funo da natureza do dispositivo;

19

BUFFERING
O buffer deve permitir ainda que sejam armazenados diversos registros, de forma que existam:
Dados lidos mas inda no processados (operao de leitura); ou
Dados processados, mas ainda no gravados (operao de gravao).
Dessa forma, o dispositivo de entrada poder ler diversos registros antes que o processador
manipule os dados, ou o processador poder manipular diversos registros antes de o dispositivo
de sada realizar a gravao (mega eficiente).

Memria
Principal

gravao
UCP

gravao
Controlador

Buffer
leitura

leitura
20

SPOOLING
A tcnica de spooling (Simultaneous Peripheral Operation On-Line) surgiu para aumentar o
grau de concorrncia e a eficincia dos SOs (~1950).

A tcnica de spooling, semelhante tcnica de buffering utiliza uma rea em disco como se
fosse um grande buffer. Neste caso, dados podem ser lidos e gravados em disco, enquanto
programas so executados concorrentemente.
Atualmente, essa tcnica est presente na maioria dos sistemas de impresso (arquivo spool).
Isso permite desvincular o programa do dispositivo de impresso, impedindo que o
programa reserve a impressora para uso exclusivo.
Sistema Operacional

Programa

Arquivo
de Spool

Impressora
21

REENTRANCIA
comum, em sistemas multiprogramveis, vrios usurios
utilizarem os mesmos aplicativos simultaneamente, como
editores de texto, compiladores e outros utilitrios.
Se cada usurio que utilizasse um destes aplicativos
trouxesse o cdigo executvel para a memria, haveria
ento diversas cpias de um mesmo programa ocupando
espao na memria, o que causaria um grande desperdcio
de espao.
Reentrncia a capacidade de um cdigo executvel
(cdigo reentrante) ser compartilhado por vrios usurios,
exigindo apenas uma cpia do programa em memria.
Permite que cada usurio esteja executando um trecho
diferente do cdigo reentrante, manipulando dados
prprios, exclusivos de cada usurio.
Normalmente cdigos reentrantes so utilizados em
utilitrios do sistema, como editores, compiladores e
linkers, promovendo um uso mais eficiente da memria e
um desempenho maior do sistema.

usurio C

usurio A

cdigo reentrante
usurio D

usurio B
rea de dados do usurio A
rea de dados do usurio B
rea de dados do usurio C
rea de dados do usurio D

Memria Principal
22

ESTRUTURA DO SISTEMA OPERACIONAL


O sistema operacional formado por um conjunto de rotinas
denominado ncleo do sistema ou kernel que oferece servios aos
usurios e s suas aplicaes.
No formado por incio, meio e fim como um aplicativo ou
programa.
formado por um conjunto de rotinas (procedimentos ou tarefas)
que oferece servios aos usurios e aplicaes (kernel).
Formas de comunicao com o kernel:
Por meio de rotinas do sistema (realizada pelas aplicaes);
Por meio de utilitrios (compiladores ou editores de texto);
Por meio de linguagem de comandos (ls, rm, clear UNIX).
Figura 1. Estrutura do SO
23

FUNOES DO NCLEO
Tratamento de interrupes e excees;
Criao e eliminao de processo de threads;
Sincronizao e comunicao entre processos e threads;
Gerncia de memria;
Gerncia do sistema de arquivos;
Gerncia de dispositivos de E/S;

Suporte a redes locais e distribudas;


Contabilizao do uso do sistema
Auditoria e segurana do sistema.

24

Modo de acesso
Privilgios de execuo de um processo.
o mecanismo presente no hardware dos processadores que tem a funo de implementar a
segurana e integridade em um SO.
Os SOs restringem as operaes executadas pelas aplicaes por razes de segurana e
estabilidade.
Tipos:
Modo usurio: uma aplicao s pode executar instrues conhecidas como no-privilegiadas, tendo
acesso a um nmero reduzido de instrues.
Modo kernel: a aplicao pode ter acesso ao conjunto total de instrues no registrador.

Por intermdio do registrador, o hardware verifica se a instruo pode ou no ser executada.


Como um estagirio em uma empresa.

25

ROTINAS DO SO

Verificar
privilgios via
software

Compem o ncleo do sistema, oferecendo servios aos


usurios e aplicaes;
System Call: controlar a execuo das rotinas do sistema
operacional garantindo a segurana e integridade do SO
(Figura 2).
Mecanismo de proteo por software: aplicaes s podem
executar rotinas que esto autorizadas.
Mecanismo de proteo por hardware: impede que uma
aplicao seja executada sem que:
O processador esteja em modo usurio;

Sem que seja uma chamada rotina do sistema (hardware do processador


sinaliza o erro.)

Figura 2. Chamada a uma rotina do SO.


26

Rotinas do SO
Se uma aplicao chamar uma rotina do kernel, o
mecanisco de system call verificar se a aplicao
possui privilgios necessrios.
Em caso POSITIVO
A rotina chamada
Em caso negativo o SO impedir o desvio para a rotina
do sistema
Em caso NEGATIVO
Informar ao programa (aplicao) que fez a
chamada que a operao no foi pssvel

09/09/2016

SISTEMAS OPERACIONAIS II

27

CHAMADA A ROTINAS DO SO
As System Calls (chamadas de sistema) so como portas de entrada para ter acesso as rotinas
do ncleo do SO e seus servios;
tipicamente utilizado em sistemas UNIX, porm em outros SO, o mesmo conceito
apresentado com diferentes nomes:
System services - OpenVMS;
Application Program Interface (API) - MS Windows;

System Call

Aplicao

Ncleo do
Sistema Operacional

Biblioteca

Hardware

Figura 3. Chamada a uma rotina do SO.


28

CHAMADAS A ROTINAS DO SO
Exemplo desenvolvido em
Delphi;

Funes das system calls:

Tabela 1. Funes das system calls

29

LINGUAGEM DE COMANDOS
A linguagem de comandos, ou linguagem de controle,
permite que o usurio se comunique de uma forma simples
com o SO.
Ex: Criar, ler, ou eliminar arquivos.

Tabela 2. Exemplos de comandos do MS Windows.

Cada comando, depois de digitado pelo usurio,


interpretado pelo shell que verifica se a sintaxe do comando
valida, faz as chamadas as rotinas do sistema e apresenta o
resultado.
Por meio das linguagens de comandos criamos os
programas que nada mais so do que uma sequencia de
comandos armazenados em um arquivo texto (automatizar
diversas tarefas do SO).
Arquivos de comandos;
Arquivos batch;
Shell scripts.
30

ATIVAO E DESATIVAO DO SISTEMA


Ativao do sistema ou boot: quando os componentes do SO devem ser carregados para
memria principal toda a vez que o computador ligado.
Localiza-se em um endereo fixo de uma memria ROM;
Inicia o programa conhecido como POST (Power-On Self Test);
Entre outras coisas o POST inicializa o vdeo, conta a memria, mostra configuraes sobre o hardware
Programa POST est gravado na memria ROM juntamente com os programas BIOS e Setup

Shutdown: desativa o SO de forma ordenada garantindo a integridade.


rea do
Sistema
Operacional

boot
Sistema
Operacional

Disco

Memria
Principal

Figura 4. Ativao do SO.

31

aplicao

aplicao

ARQUITETURAS DO NCLEO
Arquitetura Monoltica
Todo o SO foi desenvolvido como uma estrutura nica.

Anlogo a uma aplicao formada por vrios


mdulos compilados separadamente e linkados
num nico executvel;
Simples, de bom desempenho, mas de
manuteno difcil.

Modo usurio
Modo kernel
System call

Adotado no MS-DOS e nos primeiros sistemas.

Hardware

Figura 5. Arquitetura Monoltica.


32

ARQUITETURAS DO NCLEO
Arquitetura em Camadas
Aumento da complexidade e tamanho do cdigo dos SOs estimularam
tcnicas de programao estruturada e modular;
Sistema dividido em nveis sobrepostos (camadas);

Cada camada oferece um conjunto de funes


usadas apenas pelas camadas superiores.
Isolamento de funes facilita manuteno e cria uma hierarquia de
modos de acesso.

Figura 6. Arquitetura em camadas.

33

VM 1

VM 2

VM n

ARQUITETURAS DO NCLEO

Ap1

Ap2

Apn

SO1

SO2

SOn

HV1

HV2

HVn

Mquina Virtual
Modelo de VM cria um nvel intermedirio entre hardware e SO
denominado Gerncia de Mquinas Virtuais;
So criadas diversas VMs, cada uma com uma cpia virtual do
hardware;
Cada VM independente das demais e possui seu prprio SO;
Pode-se ter toda uma associao de HV e SO dedicados a um dado conjunto de aplicaes.

Permite a convivncia de SOs diferentes, mantm isolamento e garante


segurana entre VMs.

Gerncia de Mquinas Virtuais

Hardware

Figura 7. Mquina virtual.


34

ARQUITETURAS DO NCLEO
Arquitetura de Microkernel

Trocas de mensagem entre processos clientes e servidores feita pelo


microkernel (ncleo).

Modo kernel

Apenas o microkernel executa em modo kernel.

em

Modo usurio

ag
ns
me

Processo cliente solicita servio ao processo servidor deste servio;

me
ns
ag

em

Tendncia atual: ncleo do SO menor e mais simples;


Servios disponibilizados por processos dedicados em modo
usurio;
Arquitetura cliente-servidor;

Microkernel

Hardware

Figura 8. Arquitetura Microkernel.


35

ESTRUTURA DO PROCESSO
Um processo inicialmente pode ser entendido como um programa
em execuo;
Conceito mais abrangente:

Contexto de
Software

Contexto de
Hardware

Um processo o conjunto necessrio de informaes pra que o sistema


operacional implemente a concorrncia entre programas.

Mudana de contexto: troca de um processo por outro no


processador (ambiente multiprogramvel).
Formado por trs (3) partes:
Contexto de hardware;
Contexto de software;
Espao de endereamento.

Programa
Espao de
Endereamento

Figura 1. Estrutura do processo.


36

Sistema Operacional

CONTEXTO DE HARDWARE
Armazena o contedo dos registradores gerais da CPU e
dos registradores de uso especfico.

Processo A

Processo B

executando

Salva registradores do
Processo A

Program Counter (PC);


Stack Pointer (SP);e
Registrador de status.

Carrega registradores do
Processo B

O contexto de hardware fundamental para a


implementao dos sistemas multiprogramveis, onde
os processos se alternam na utilizao da CPU e,
posteriormente so restaurados.

executando

Salva registradores do
Processo B

Carrega registradores do
Processo A

executando

Figura 2. Mudana de contexto.


37

CONTEXTO DE SOFTWARE
Funo: especificar os limites e caractersticas dos recursos que podem ser alocados pelo
processo.
Ex.: nmero mximo de arquivos abertos simultaneamente, prioridade de execuo e tamanho do
buffer para operaes de E/S.

Arquivo de usurios: arquivo do SO onde so especificados os limites dos recursos que cada
processo pode alocar.
3 grupos:
Identificao:
Cotas;
Privilgios.

38

CONTEXTO DE SOFTWARE
Identificao: cada processo criado pelo sistema recebe uma identificao nica.
PID (process identification): identificador do processo (mudana de contexto);
UID (user identification): identificao do usurio ou processo (owner) que o criou.

Quotas: so os limites que cada recurso do sistema que um processo pode alocar.

Nmero mximo de arquivos abertos simultaneamente;


Tamanho mximo de memria principal e secundria;
Nmero mximo de operaes de E/S pendentes;
Tamanho mximo do buffer para operaes de E/S;
Nmeros mximo de processos, subprocessos e threads que podem ser criados.

Privilgios: Definem as aes que um processo pode fazer em relao a ele mesmo, aos demais processos e ao SO.

39

ESTADO DO PROCESSO
Um processo no deve alocar exclusivamente
a UCP de forma que exista um
compartilhamento no uso do processador.

Lista de
processos
em estado
de pronto
..
..
..
..

3 estados:

PCB# 5

..
..
..
..

PCB# 1

Execuo (running);
Quando processado pela UCP.

Pronto (ready);
Quando aguarda para ser executado.

Espera (wait).
Quando espera por algum evento externo para prosseguir
seu processamento.

Lista de
processos
em estado
de espera
..
..
..
..

..
..
..
..

..
..
..
..

PCB# 9

PCB# 2

PCB# 4

Ainda temos os estados:


Novo quando ele criado
Terminado quando acaba a execuo do
processo.

Figura 6. Lista de PCBs no estado de pronto e espera.


40

Estado de Execuo

MUDANA DE ESTADOS DO PROCESSO


Pronto Execuo;
Fica em uma lista onde aguarda para ser executado.

Execuo Espera;
Eventos gerados pelo prprio processo ou por uma
operao de E/S.

Espera Pronto;
A operao solicitada atendida ou o recurso
esperado concedido.

Estado de Espera

Estado de Pronto

Estado de Espera

Estado de Pronto

residente
no residente

Execuo Pronto.
Ocorre por eventos gerados pelo sistema. Ex.: tempo
que o processo possui para ser executado.

Figura 6. Mudanas de estado no processo.


41

Apenas um processo pode estar em execuo em um processador a cada instante


Muitos processos podem estar prontos e em espera para entrar em execuo

09/09/2016

SISTEMAS OPERACIONAIS II

42

BLOCO DE CONTROLE DE PROCESSO


Cada processo descrito no SO por um bloco de controle
de processo
a estrutura pela qual o processo implementado
(Process Control Block PCB).
Por meio do PCB o SO mantm todas as informaes
sobre o contexto de hardware, contexto de software e
espao de endereamento de cada processo.

A memria principal armazena os PCBs de todos os


processos.

ponteiros
Estado do processo
Nome do processo
Prioridade do processo
Registradores

Limites de memria
Lista de arquivos abertos
..
..
..
..

Funo de armazenar informaes necessrias para tratar


um processo
Figura 4. Bloco de Controle do Processo (PCB).
43

CRIAO E ELIMINAO DE PROCESSOS


A criao de um processo ocorre
quando o SO adiciona um novo PCB
sua estrutura e aloca um espao de
endereamento na memria para uso.

E
stadodeE
xecuo

E
stadodeT
rm
ino

A eliminao ocorre quando todos os


recursos so desalocados e o PCB
eliminado pelo SO (nenhum programa
executando no seu contexto).
E
stadodeE
spera

E
stadodeP
ronto

E
stadodeC
riao

Figura 7. Mudanas de estado no processo.

44

PROCESSOS CPU-BOUND E I/O-BOUND

CPU-bound

Requisitam muitos servios da UCP;


Ex.: softwares renderizadores de imagem.

Poucas operaes de leitura e gravao.

I/O-bound
Requisitam muitos servios de entrada e sada.
Processos extremamente interativos como processadores de
texto.

Leitura, processamento e gravao.

Figura 8. Processos CPU-bound e I/O-bound.

45

PROCESSOS FOREGROUND E BACKGROUND


Foreground: aquele que
permite a comunicao direta
do usurio com o processo
durante seu processamento.
O processamento interativo
tem como base processos
foreground.

Background: aquele onde


no existe a comunicao com
o usurio durante o seu
processamento.
Ex.: processamento do tipo
batch.

rocessoForeground
(a) P
entrada

sada
terminal

terminal

ackground
rocessoB
(b) P
entrada

arquivo
deentrada

sada

arquivo
desada

Figura 9. Processos foreground e background.


46

FORMAS DE CRIAO DE PROCESSOS


Logon interativo (arquivo de usurios);
Via linguagem de comandos;
Via rotina do SO.

sadado
P
rocessoA
entradado
P
rocessoA

sadado
P
rocessoB
entradado
P
rocessoB
P
rocessoA

P
rocessoB

Figura 10. Pipe.


47

Resumo
O processador projetado para executar instrues a partir do ciclo de busca e execuo;
O processador busca a instruo a ser executada na memria principal e a armazena no
registrador de instrues para finalmente decodificar seus bits e realizar a execuo;
O registrador tem a funo de armazenar sempre o endereo da prxima instruo a ser
executada e as alteraes do seu contedo determinam o sequenciamento de execuo das
instrues armazenadas na memria principal.
Na viso da camada de hardware o processador executa instrues sem distinguir qual
programa encontra-se em processamento.
o SO que gerencia a concorrncia entre programas.

48

RESUMO

Figura 3. Espao de endereamento.


49

You might also like