Sistemas Operacionais Prof. M.Sc. Sérgio Teixeira

Propaganda
Cursos de Computação
Sistemas Operacionais
Prof. M.Sc. Sérgio Teixeira
Aula 05 – Estrutura e arquitetura do SO
Parte 1
Referência: MACHADO, F.B. ; MAIA, L.P. Arquitetura de Sistemas Operacionais. 4.ed. LTC, 2007.
Conceitos básicos
• Conceito de núcleo ou Kernel: Conjunto de rotinas
de suporte aos usuários, aplicações e ao próprio
SO.
• Não confundir o núcleo do sistema com as
aplicações, utilitários e interpretador de comandos
que vem juntamente com o S.O.
• O S.O. não é executado como uma aplicação típica,
com início, meio e fim. Os procedimentos são
executados concorrentemente, sem um uma ordem
pré-definida e a partir de eventos dissociados do
tempo (assíncronos).
Estrutura do SO
Funções do Kernel
• Tratamento de interrupções e exceções
• Criação/eliminação de proc. e threads;
• Sincronização e comunicação entre processos e
threads;
• Escalonamento e controle dos processos e
threads;
• Gerência de memória, do sistema de arquivos,
e de dispositivos de E/S
• Suporte a redes locais e distribuídas;
• Contabilização do uso do sistema;
• Auditoria e segurança do sistema;
System Calls
• podem ser entendidas como portas de
acesso ao núcleo do sistema operacional e
seus serviços, que os usuários ou aplicações
usam para chamar suas rotinas.
• Para cada serviço disponível, existe uma
system call correspondente cada S.O. tem
seu próprio conjunto de chamadas, com
nomes, parâmetros e formas de ativação
específicos. -> Uma aplicação desenvolvida
para um S.O não roda em outro.
System Calls
System Call
Aplicação
Biblioteca
Núcleo do
Sistema Operacional
Hardware
System Calls
• Uma tentativa de criar uma biblioteca de chamadas
padronizadas foi proposta pelos institutos ISO e IEEE – o
padrão POSIX (Portable Operating Interface for Unix).
Essa iniciativa é atuante nos dias de hoje. Mais
informações em http://pt.wikipedia.org/wiki/posix
• Inicialmente voltado para a unificação das diversas versões
do Unix, o POSIX foi incorporado, posteriormente, por
grande parte dos sistemas operacionais.
• A maioria dos programadores e usuários desconhece os
detalhes envolvidos na implementação das system calls. Se
for utilizado um compilador, ele converte o comando de
alto nível para system calls específicas.
Padrão POSIX
• Portable Operating System Interface for Unix ou interface de
sistema portável para Unix. O padrão POSIX é constituído por
uma série de regras que determinam como o programador
deve escrever o código-fonte de seu sistema de modo que ele
possa ser portável entre os sistemas operacionais baseados
no Unix.
• Portável neste caso significa que bastará recompilar o
programa, usando o compilador adequado para torna-lo
compatível com o sistema desejado, sem a necessidade de
fazer alterações no código fonte. É graças à Interface POSIX
que existe um razoável nível de compatibilidade entre os
programas escritos para o Linux, FreeBSD e para outras
versões do UNIX.
•
Referências:
–
http://www.guiadohardware.net/termos/posix
Funções e grupos de
System Calls
System Call
System Call ou chamada de Sistema é
uma camada de funções que constitui
uma interface entre programas
aplicativos (ou em nível de usuário) e
o sistema operacional. São rotinas que
proveem acesso às funcionalidades do
Sistema Operacional, tais como
manipulação de arquivos, controle de
processo, gerenciamento de memória.
Referências:
–
http://www.vivaolinux.com.br/artigo/OpenSolaris-Sistema-Operacional-Open-Source/
–
http://www.digilife.be/quickreferences/QRC/LINUX System Call Quick Reference.pdf
Modos de acesso
• Tipos de instruções
– Privilegiadas – podem comprometer
sistema. Ex.: acesso direto ao disco.
– Não-privilegiadas – não oferecem risco
o
• Modos de acesso
– Usuário – tem acesso somente a instruções
não-privilegiadas
– Modo Kernel ou supervisor – tem acesso a
todas as instruções
Modos de acesso
• Somente o núcleo do sistema operacional tem
acesso ao processador no modo supervisor.
• Quando uma aplicação precisa de uma operação
protegida (ex. escrever no disco), é feita uma
system call, que altera o modo usuário para
kernel. Ao término da operação, o modo de acesso
volta ao modo usuário.
• Caso uma aplicação tente executar uma instrução
privilegiada, o processador gerará uma exceção e
o programa é interrompido.
Chamando uma System call
Interpretador de comandos
• Permite que o usuário se comunique com o
sistema por meio de comandos;
• Comandos em modo texto ou com
interface gráfica;
• Após a utilização de um comando o
interpretador de comandos ou shell faz a
chamada a rotina específica do SO e
apresenta o resultado.
• O Shell não faz parte do núcleo. O objetivo
é
permitir
flexibilidade
para
os
desenvolvedores de SO.
Interpretador de comandos
• A linguagem de comandos oferece uma
grande gama de recursos ao usuário.
• O usuário pode programar sequencias de
comandos em arquivos de comandos,
arquivos batch ou shell scripts.
• Com isso o usuário pode automatizar
diversas rotinas e também desenvolver
programas
para
auxiliar
no
gerenciamento dos SOs em rede ou não.
Ativação/Desativação do
SO
• O Programa boot loader que fica em um endereço fixo
da ROM é carregado;
• O programa POST (Power-on seft test) verifica
possíveis erros de hardware;
• De acordo com a seqüência de dispositivos de boot,
definida na BIOS pelo usuário, é feita a verificação se
existe o SO;
• Cada dispositivo tem o seu “boot sector” no qual a
carga do SO é feita.
• Após a carga do SO vários arquivos de inicialização
customizam a configuração do hardware e carregam
programas específicos.
Ativação/Desativação do SO
Área do
Sistema
Operacional
boo t
Sistema
Operacional
Disco
Memória
Principal
Cursos de Computação
Sistemas Operacionais
Prof. M.Sc. Sérgio Teixeira
Aula 05 – Estrutura e arquitetura do SO
Parte 1
Obrigado e bons estudos!
Download