Вы находитесь на странице: 1из 19

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
Componentes de um sistema
computacional

Programas de sistema
Um sistema operacional é
Sistema Navegador
um componente importante Jogos

e aplicativos
de um sistema bancário WEB
computacional.
Interpretador
Compiladores Editores
Um sistema computacional de comandos
pode ser dividido em três
camadas importantes:
Sistema operacional
• Hardware
• Sistema operacional
• Programas de sistema e
aplicativos Linguagem de máquina
Hardware

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 AX, 5
MOV BX, 10
ADD AX, BX
SUB AX, 1
HLT

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 CreateProcess() – Crie um novo


exit– Termine a execução processo
open – Crie um arquivo ou abra um ExitProcess() – Termine a execução
arquivo existente CreateFile() – Crie um arquivo ou abra
close – Feche um arquivo um arquivo existente
read – Leia dados de um arquivo CloseHandle() – Feche um arquivo
write – Escreva dados em um ReadFile() – Leia dados de um arquivo
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 Navegador
Jogos
bancário WEB

Interpretador
Compiladores Editores
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.