Sistemas Operacionais
Aula 01 - Introdução
Prof. Maxwell Anderson
www.maxwellanderson.com.br
Capítulo 1: Introdução
•
•
•
•
•
O que é um sistema operacional?
Componentes de um sistema operacional
O que faz parte de um sistema operacional?
Sistema operacional como máquina virtual (estendida)
Sistema operacional como gerenciador de recursos
O que é um sistema operacional?
• Um programa que atua como intermediário entre o usuário e
o hardware de um computador.
• Propósitos de um sistema operacional:
– Executar programas do usuário;
– Tornar o uso de um sistema computacional conveniente;
• Usar o hardware de um computador de uma maneira
eficiente
Um sistema operacional é
um componente importante
de um sistema
computacional.
Um sistema computacional
pode ser dividido em três
camadas importantes:
Sistema
bancário
Navegador
WEB
Jogos
Compiladores
Editores
Interpretador
de comandos
Sistema operacional
Hardware
Sistema operacional
Programas de sistema e
aplicativos
Linguagem de máquina
Hardware
•
•
•
Programas de sistema
e aplicativos
Componentes de um sistema
computacional
Microarquitetura
Dispositivos físicos
Componentes de um sistema
computacional
Hardware
– Fornece os recursos básicos para computação
– É composto por:
• Unidade Central de Processamento (CPU)
• Memória
• Dispositivos de entrada e saída (I/O – Input/Output)
– Possui os níveis:
Linguagem de máquina
Microarquitetura
Dispositivos físicos
Componentes de um sistema
computacional
Dispositivos físicos
–
–
–
–
Chips de circuitos integrados
Fontes de alimentação
Tubos de raios catódicos ou telas LCD
Fios
Linguagem de máquina
Microarquitetura
Dispositivos físicos
Componentes de um sistema
computacional
Microarquitetura
– Registradores
– Caminho de dados
Microarquitetura
Dispositivos físicos
Componentes de um sistema
computacional
Linguagem de máquina
–
–
–
–
Conjunto de instruções em nível de linguagem de máquina
Também chamado de nível ISA - Instruction Set Architecture
Uma CPU possui cerca de 50 a 300 instruções
O conjunto de instruções controlam tudo o que a máquina pode fazer
Linguagem de máquina
Microarquitetura
Componentes de um sistema
computacional
Linguagem de máquina – instruções típicas
– LOAD, STORE - realizam o movimento de dados e instruções entre
memória e registradores
– MOVE - realizam cópia de valores entre registros
– ADD, SUB, MULT,... - realizam operações aritméticas
– AND, OR, XOR, ... - realizam operações lógicas
– EQ, NEQ, LEQ,... - realizam operações de comparação
– GOTO - operação de desvio
Linguagem de máquina
Componentes de um sistema
computacional
Linguagem de máquina – exemplo:
; Este código soma 5 + 10
MOV
MOV
ADD
SUB
HLT
AX,
BX,
AX,
AX,
5
10
BX
1
Abrir montador assembler
Componentes de um sistema
computacional
Sistema operacional
– Controla e coordena o uso do hardware entre as várias aplicações que
vários usuários utilizam.
– Fornece instruções mais simples.
UNIX:
Windows:
fork – Crie um novo processo
exit– Termine a execução
open – Crie um arquivo ou abra um
arquivo existente
close – Feche um arquivo
read – Leia dados de um arquivo
write – Escreva dados em um
arquivo
CreateProcess() – Crie um novo
processo
ExitProcess() – Termine a execução
CreateFile() – Crie um arquivo ou abra
um arquivo existente
CloseHandle() – Feche um arquivo
ReadFile() – Leia dados de um arquivo
WriteFile() – Escreva dados em um
arquivo
Componentes de um sistema
computacional
Sistema operacional – exemplos de uso das instruções
– Fornece instruções mais simples
import win32.winbase;
import win32.windef;
import win32.winuser;
extern(Windows) int WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
PSTR szCmdLine,
int iCmdShow)
{
MessageBoxA(null, "Hello", "Hello World", MB_OK);
return (0);
}
– Mais exemplos com tutorial em http://www.winprog.org/tutorial/
Componentes de um sistema
computacional
Sistema
bancário
Navegador
WEB
Jogos
Compiladores
Editores
Interpretador
de comandos
Programas de sistema
–
–
–
–
Compiladores, interpretadores: C/C++, Java, Perl etc.
Gerenciadores de janelas: Explorer, X
Editores: vi, edit, notepad etc.
Interpretador de comandos ou shell: ms-dos, cygwin, bash, cmd etc.
Programas aplicativos
– Sistemas em geral: Gerenciador Financeiro, MS Word, AutoCAD etc.
– Navegador WEB: Firefox, Internet Explorer, Chrome etc.
– Jogos.
O que faz parte de um S.O.?
Sistema operacional
“Não existe uma definição universalmente aceita do que faz e do
que não faz parte do sistema operacional. Um ponto de vista
simples é aquele que diz que um S.O. é tudo aquilo que o
fornecedor entrega para você.” Silberschatz
“Uma definição comum é que o S.O. é um programa que sempre
está sendo executado em um computador, chamado de
núcleo ou kernel, todo o resto consistindo em programas
aplicativos” Silberschatz
“Essa parte que sempre está sendo executado em um
computador é dito que o S.O. está sendo executado em
modo supervisor ou modo núcleo.” Tanenbaum
S.O. como máquina virtual
Sistema operacional como máquina virtual pag 4 e 5
– A arquitetura da maioria dos computadores em nível de linguagem de
máquina é primitiva e de difícil programação, especialmente para I/O.
– Exemplo: I/O da unidade de discos flexíveis.
“Chip controlador NEC-PD765, possui 16 comandos. Os comandos mais
básicos são o READ e o WRITE, cada um dos quais requerendo 13
parâmetros, acondicionados em 9 bytes. Tais parâmetros especificam o
endereço do bloco a ser lido do disco, o número de setores por trilha, o
modo de gravação no meio físico, o espaçamento entre setores, entre
outras coisas. Quando a operação se completa, o chip controlador retorna
ao processador, 23 campos de estado, acondicionados em 7 bytes. Como
se isto não bastasse, o programador da unidade de disco flexível tem de
se preocupar com o fato do motor do disco estar ligado ou desligado. Se o
motor estiver desligado, ele precisa ser ligado antes que o dado possa ser
lido ou gravado. O motor não pode permanecer ligado por muito tempo
sob pena de danificar o disquete.” [1]
S.O. como máquina virtual
Sistema operacional como máquina virtual
– Exemplo em um nível mais baixo em Material de
Exemplo
– Exemplos em um nível mais alto:
S.O. como máquina virtual
Sistema operacional como máquina virtual
– “O programa que esconde o verdadeiro hardware do usuário e
apresenta-lhes um esquema simples de arquivos identificados que
podem ser lidos ou escritos é o sistema operacional. Da mesma forma
que o sistema operacional isola o usuário dos detalhes da operação do
disco, ele também trata de uma série de outras questões tais como
interrupções, os temporizadores, a gerência da memória e outras. Em
cada caso, a abstração apresentada ao usuário do sistema operacional
é mais simples e mais fácil de utilizar que o próprio hardware.” [1]
– “Neste aspecto, a função do sistema operacional é a de apresentar ao
usuário uma máquina estendida ou máquina virtual equivalente ao
hardware, porém muito mais simples de programar.” [1]
S.O. como gerenciador de
recursos
Sistema operacional como gerenciador de recursos [1] pag 5
– “Imagine o que poderia acontecer se três processos, rodando em um
dado computador, resolvessem imprimir suas saídas simultaneamente
na mesma impressora. As três primeiras linhas da listagem poderiam ser
do processo 1, as seguintes do processo 2 e assim por diante, até que
os três terminassem a impressão. Fica claro que tal situação não é
admissível em nenhum sistema que se preze. O sistema operacional
tem por função colocar ordem neste caos potencial, armazenando em
disco todas as saídas destinadas à impressora, durante a execução dos
processos.”
– “No caso do computador possuir múltiplos usuários, a necessidade de
gerência e proteção da memória, dos dispositivos de entrada/saída e
dos demais recursos do sistema fica ainda mais aparente.”
– “Pelo exposto acima, esta outra visão da função de um sistema
operacional mostra que sua tarefa principal é a de gerenciar os usuários
de cada um dos recursos da máquina, contabilizando o tempo de uso de
cada um e garantindo o acesso ordenado de usuários a recursos através
da mediação dos conflitos entre as requisições dos diversos processos
usuários do sistema”.
Referências Bibiográficas
•
[1] Tanenbaum, Andrew S. Sistemas Operacionais Modernos 2. ed.
Prentice Hall ( Pearson ), 2003
•
[2] Silberschatz, Abraham. Sistemas Operacionais. Editora
CAMPUS, 2001.
Download

Sistemas Operacionais