Aula 1 (04/08/2016) - Introdução a Sistemas Operacionais

Propaganda
Introdução a Sistemas Operacionais
Prof. Alexandre Monteiro
Recife
‹#›
Contatos

Prof. Guilherme Alexandre Monteiro Reinaldo

Apelido: Alexandre Cordel

E-mail:
[email protected]
[email protected]

Site: http://www.alexandrecordel.com.br/fbv

Celular: (81) 9 9801-1878
Computador Moderno

Componentes físicos (hardware)
• Um ou mais processadores
• Memória
• Discos
Sistema Complexo
• Impressoras
• Vários outros dispositivos de E/S (tela,
mouse…)

Gerenciar todos estes componentes requer uma camada de
software (abstração, um modelo mais simples do
computador) – o sistema operacional
Exemplo de SO’s

SO’s mais conhecidos
• UNIX
• Windows (95/98/ME) (NT/2000/XP/Vista/7/8)
• Linux (Suse, Ubuntu, Debian, Fedora, Kurumin)
• MAC OS X
• Solaris
• Free BSD
• Symbian
• IOS
• Android
• Chorme OS
• Ubuntu Mobile OS
Exemplo de SO’s

Programa com o qual usuários interagem Windows e
Linux
•Shell (interpretador de linhas comandos)
- DOS, Bash, SH, CSH, KornShell, etc.)
•GUI (Graphical User Interface)
•Não são parte do sistema operacional, embora o
utilize para realizar seu trabalho.
Shell vs. SO



Shell é tudo no linux é 1000% poderoso, e é capaz de se
fazer tudo nele, como: ouvir MP3, editar textos, navegar na
internet, fazer monitoramento de rede, configurações do
sistema, usar icq, irc, ou seja, absolutamente.
Bash é o padrão do linux ele completa comandos com a
tecla TAB, pode-se ter cores para identificar pastas e
arquivos, tem-se repetição de comandos, varias teclas de
atalho para manipulação das linhas (sintaxe de comando)
mostra o usuário o nome da máquina e a pasta que se está
(coisa que o SH não faz), então um se difere do outro por
estas funcionalidades, uns tem mais outros menos.
MS-DOS (Microsoft Disk Operating System) é um sistema
operacional baseado em um prompt de linhas de comando
e é bastante limitado.
Exemplo de SO’s



O iOS é a base do iPhone, do iPad e do iPod touch. Como o
iOS foi projetado para aproveitar as tecnologias avançadas
de cada hardware Apple, os seus dispositivos estão anos à
frente.
Android é um sistema operacional móvel (SO) baseado
no núcleo linux e atualmente desenvolvido pela empresa de
tecnologia Google utilizando a linguagem de programação
Java.
O Chrome OS é um avançado sistema operacional de código
aberto baseado em Linux que é totalmente focado na web e
nos serviços oferecidos pelo Google, a empresa que o criou.
Computador Moderno
Fonte: Tanenbaum, Modern Operating Systems 3 ed, São Paulo p.1, 2010 Prentice-Hall, Inc. All rights reserved.
Computador Moderno
Sistema Operacional
BIOS
Inicialização do Sistema Operacional


A BIOS é um software especial que faz a interface dos principais
componentes de hardware de seu computador com o sistema operacional.
Ela geralmente é armazenada em um chip de memória flash na placa-mãe,
mas algumas vezes o chip é de um outro tipo de ROM.
Quando você liga seu computador, a BIOS faz diversas coisas. Esta é a
seqüência normal:
1. Verifica a configuração (setup) da CMOS para os ajustes personalizados
2. Carrega os manipuladores de interrupção e acionadores (drivers) de dispositivos
3. Inicializa registradores e gerenciamento de energia
4. Efetua o autoteste durante a energização (POST - Power On-Self Test)
5. Exibe as configurações do sistema
6. Determina quais dispositivos são inicializáveis
7. Começa a seqüência de inicialização (conhecida como bootstrap ou, de forma
mais reduzida, como boot)






Inicialização do Sistema Operacional
A primeira coisa que a BIOS faz é verificar a informação armazenada em uma minúscula quantidade de RAM (64 bytes)
localizada em um chip fabricado com a tecnologia CMOS (Complementary Metal Oxide Semicondutor).
O CMOS é uma pequena área de memória volátil, alimentada por uma bateria, que é usada para gravar as configurações do
Setup da placa mãe e o relógio de tempo real “real time clock”, “underclock”, “overclock” e “clear CMOS”.
A Configuração da CMOS fornece informações detalhadas particulares para seu sistema e pode ser alterada de acordo as
mudanças do sistema.
A BIOS usa essas informações para modificar ou complementar sua programação padrão conforme necessário.
Depois de verificar a configuração de CMOS e carregar os manipuladores de interrupção, a BIOS determina se a placa de
vídeo está operacional.
Em seguida, a BIOS verifica se se trata de uma inicialização a frio (cold boot) ou de uma reinicialização (reboot). Ela faz
isso verificando o valor no endereço de memória 0000:0472. Um valor 1234h indica uma reinicialização e a BIOS salta o
restante do POST. Caso contrário, é considerada uma inicialização a frio.

Se for uma inicialização a frio, a BIOS verifica a RAM fazendo um teste de escrita/leitura de cada endereço da memória.

Ele verifica as portas PS/2 ou portas USB em busca de um teclado e um mouse.



Ela procura por um barramento PCI (Peripheral Component Interconnect) e, caso encontre algum, verifica todos os
cartões PCI.
Se a BIOS encontrar algum erro durante o POST, ela notificará o usuário por meio de uma série de bips ou uma mensagem
de texto exibida na tela. Um erro nesse ponto quase sempre representa um problema de hardware.
Quaisquer drivers especiais, como aqueles para adaptadores de SCSI (Small Computer System Interface) são carregados a
partir do adaptador e a BIOS exibe essa informação.









Inicialização do Sistema Operacional
A BIOS então considera a seqüência de dispositivos de armazenamento identificada como dispositivos de inicialização n
configuração de CMOS.
O BIOS tentará iniciar a seqüência de boot a partir do primeiro dispositivo. Se a BIOS não encontrar um dispositivo,
tentará o próximo dispositivo na lista.
Agora, o BIOS lê o setor zero (que contém apenas 512 bytes, denominado Master Boot Record) do HD. Essa área contém
um código que alavanca a inicialização do sistema operacional. Outros dispositivos de boot (CDs, disquetes etc.) têm a
capacidade de emular esse setor zero.
No caso do Windows, o Master Boot Record (MBR) verifica qual partição do HD está ativa (configurada como Master) e
inicializa o “setor um” dela — essa área tem um código com a simples missão de carregar o setor dois.
A etapa seguinte consiste na leitura de um arquivo de configuração de boot, o Boot Loader (quando falamos do Window
trata-se do NTLDR).
A partir dele, é inicializado o núcleo (kernel). Assim como o BIOS estabelece a ligação entre hardware e sistema, o kern
serve para firmar uma comunicação estável entre hardware e software. Nessa fase, é ele quem assume o controle do
computador.
O kernel carrega os arquivos principais e informações básicas do sistema operacional (incluindo o registro), além de
relacionar os componentes de hardware com as respectivas DLLs e drivers.
No entanto, o kernel não carrega todos os processos para não sobrecarregar o sistema — somente as operações essencia
são colocadas em atividade para possibilitar o início do Windows (Services).
A tela de escolha de usuários é exibida e, após o logon, os programas relacionados para começar junto com o sistema sã
carregados.
SO como máquina estendida

Sistemas operacionais tornam o hardware pouco
atraente em abstrações mais interessantes
SO: Interface de Usuário - GUI
SO: Interface de Usuário - Shell
SO como Gerenciador de Recursos


Gerencia e protege memória, dispositivos de E/S e outros
recursos (hardware) como mouse, teclado, impressora, etc.
Permite o compartilhamento (multiplexação) de recursos
•no tempo (time-sharing)
- Ex.: múltiplos programas compartilham o processador (executam) ao
mesmo tempo
•no espaço
- Ex.: um sistema de arquivos (parte do SO) permite que dados de
diferentes usuários/arquivos compartilhem o espaço em disco
Mais uma vez: O que é um SO?

É uma Máquina Estendida
•Oculta os detalhes complicados que têm quer
ser executados
•Apresenta ao usuário uma máquina virtual,
mais fácil de usar

É um Gerenciador de Recurso
•Cada programa tem um tempo com o recurso
- Ex.: compartilhamento de CPU
•Cada programa tem um espaço no recurso
- Ex.: compartilhamento de memória
Vídeo

A história dos principais Sistemas Operacionais
https://www.youtube.com/watch?v=nt0P8ZAYuUo
História dos SO’s e dos Comutadores

Primeira geração: 1945 - 1955
•Válvulas, painéis de programação

Segunda geração: 1955 - 1965
•transistores, sistemas em lote

Terceira geração: 1965 – 1980
•CIs (circuitos integrados) e multiprogramação

Quarta geração: 1980 – presente
•Computadores pessoais

Hoje: onipresença – computação ubíqua
1ª Geração

Computadores com “programas fixos” – todos
até a década de 40
• Programa implícito no hardware
• A maioria tinha propósito específico, como
acontece com as calculadoras modernas
• Apenas uma minoria podia ser reprogramada, o que
era feito de maneira mecânica
- Ligando e desligando fios
21
1ª Geração

Computadores de programas armazenados a partir da
década de 40 com o SSEM – Manchester Small-Scale
Experimental Machine
• São os computadores modernos, de propósito geral
• Diferentes programas podem ser criados e carregados na
memória
• Programas escritos usando um conjunto de instruções,
representadas em código binário
- Linguagem de máquina!
• Não havia Sistema Operacional
22
Fonte: http://en.wikipedia.org/wiki/Manchester_Small-Scale_Experimental_Machine
23
ENIAC – 1º Computador Programável





Pesava 30 toneladas, media 5,50 m de altura e 25 m de
comprimento e ocupava 180 m² de área construída.
Foi construído sobre estruturas metálicas com 2,75 m de altura e
contava com 70 mil resistores e 17.468 válvulas a vácuo ocupando
a área de um ginásio desportivo, diodos de cristal de 7200, 1.500
relés, 70.000 resistores, 10.000 capacitores e cerca de 5 milhões
de juntas soldadas à mão.
Segundo Tom Forester, quando acionado pela primeira vez, o
ENIAC consumiu tanta energia que as luzes de Filadélfia piscaram.
Processador de 20 ciclos de clock de 0,1MHz na unidade.
Era incapaz de armazenar programa em memória (cartões
perfurados) – Em 1970 DRAM de 1KB, mais tarde 256KB SDRAM.
ENIAC
1ª Geração


A linguagem de máquina do SSEM pode ser
entendida (grosseiramente) como a primeira
linguagem de programação
Essa linguagem define a associação entre uma
instrução em binário e o efeito dela sobre o
hardware
• Linguagem entendida diretamente pelo processador
• Cada arquitetura de computador define a sua
própria linguagem
26
História dos SO’s

Exemplo de instrução
• Somar o valor dos registradores 1 e 2 e guardar o
resultado no registrador 3

Exemplo de código de máquina (fictício)
1011100 0001 0010 0011
adição

reg. 1
reg. 2
reg. 3
Podemos ver que escrever um programa em
linguagem de máquina não é trivial...
27
História dos SO’s

Programadores definiram uma notação
simbólica para representar seus programas
• Usada para anotar seus programas em papel antes
de passar para linguagem de máquina

Essa notação definia símbolos para representar
cada instrução, tais como:
• ADD – operação de adição
• LOAD – operação de leitura da memória
• R1 – representa o registrador 1
• ...
28
História dos SO’s


A nova notação simbólica recebeu o nome de
linguagem assembly ou linguagem de
montagem
Exemplo de instrução em assembly
•ADD R1 R2 R3
- Representa a mesma operação dada antes
em código de máquina
29
História dos SO’s

Não demorou até alguém ter a idéia de criar
um programa para traduzir...
• De um texto digitado na linguagem assembly
• Para um arquivo em linguagem de máquina

Este tipo de programa passou a ser conhecido
pelo nome de assembler ou montador
• Um compilador primitivo
30
História dos SO’s


Programar em linguagem de montagem,
porém, ainda tinha muitas das desvantagens
da própria linguagem de máquina
O principal problema era a necessidade de
pensar não só no algoritmo em si, mas no
funcionamento do hardware
31
História dos SO’s

Começaram a surgir outras linguagens mais
elaboradas
• Fortran (1957)
• LISP (1959)
• COBOL (1960)
• BASIC (1964)
• C (1972)
• etc.
32
História dos SO’s


Facilitaram a vida dos programadores ao tornar a
notação mais intuitiva e mais distante dos detalhes de
hardware
Por exemplo, o comando Fortran
temp = 2 + 3

Engloba várias operações de hardware:
1. Carregar os operadores em registradores
2. Operar a adição, guardando o resultado em algum
registrador
3. Copiar o conteúdo do registrador de resultado
para a memória
33
História dos SO’s


As novas linguagens que surgiram foram
chamadas de linguagens de alto nível
Em contraste, as linguagens assembly e
de montagem passaram a ser chamadas
de linguagens de baixo nível
34
2ª Geração

Estrutura de um job típico (lote de cartões)

Transistores e sistemas em lote (batch) - Mainframes
(a)
(b)
(c)
(d)
(e)
(f)
Programadores levam os cartões para o 1401
1401 gravada o lote de tarefas dos cartões em fita
operador levava a fita de entrada para 7094
7094 executava o processamento
operador levava a fita de saída para o 1401
coloca a fita no 1401 que imprime a saída
2ª Geração

$JOB -> $FORTRAN -> $LOAD -> $RUN
-> $END

Fonte -> Compila -> Carrega -> Processa -> Finaliza
3ª Geração

CI’s e Sistema de multiprogramação
•Três jobs na memória
4ª Geração

Computadores Pessoais (1º SO – CP/M)

DOS como sistema operacional (Bill Gates)
Diversidade dos SOs

Sistemas operacionais de computadores de grande porte (mainframe)

Sistemas operacionais de servidores / redes

Sistemas operacionais de multiprocessadores (paralelismo)

Sistemas operacionais de computadores pessoais

Sistemas operacionais de dispositivos portáteis/móveis (ex. celulares)

Sistemas operacionais de tempo-real

Sistemas operacionais embarcados

Sistemas operacionais de cartões inteligentes

Sistemas operacionais de sensores
Estrutura do SO: Sistema Monolítico

Modelo simples de estruturação
de um sistema monolítico.
Monoprogramado vs. Multiprogramado


Sistemas Operacionais Monoprogramados ou Monotarefa são
os SO que executam apenas um programa do usuário de
cada vez.
Por exemplo, se se utiliza um processador de texto e se
pretende fazer um desenho, tem que se fechar o
processador de texto e abrir a folha de desenho.
•Ex.: MS-DOS
Monoprogramado vs. Multiprogramado


Sistemas Operacionais Multiprogramados ou Multitarefa são
os SO que executam dois ou mais programas aparentemente
em simultâneo. Este é o conceito de Paralelismo
Concorrente.
Na verdade o que o processador faz é atribuir frações de
tempo aos programas que estão a executar. Existem
diferentes técnicas de multitarefa.
•Multitarefa cooperativa
•Multitarefa preempetiva
•Multitarefa multithreading
Monoprogramado vs. Multiprogramado



Multitarefa cooperativa: Executa dois ou mais programas em simultâneo mas
o programa que está em primeiro plano tem controle sobre o processador.
Neste caso se este programa falhar bloqueia o computador e tem que ser
reiniciado. Exempo de SO: Windows 3.x e versões anteriores ao Mac OS 8.
Multitarefa preempetiva: É o processador que controla a execução dos
programas, desta forma permite ao sistema operacional recuperar o controle
caso um programa bloqueie. O utilizador perde os trabalhos do programa que
falhou mas os restantes programas continuam a trabalhar. Exemplo de SO:
Unix; Linux; Windows 95 e superiores; MAC OS 8 e superiores.
Multitarefa multithreading: Executa mais que uma tarefa do mesmo
programa. Os programas criam threads, ou seja, tarefas distintas que
executam determinadas funções dentro do mesmo programa. Por exemplo,
quando conversamos em um chat, outro thread está escutando se alguém
está querendo falar. Os mais recentes SO utilizam este tipo de multitarefa.
Monoprocessado vs. Multiprocessado



Monoprocessamento é a capacidade de um sistema
operacional executar vários processos compartilhando
memória mas utilizando apenas um processador.
Multiprocessamento é a capacidade de um sistema
operacional executar simultaneamente dois ou mais
processos em Paralelo. Pressupõe a existência de dois ou
mais processadores. Este é o conceito de Paralelismo Real.
Difere da multitarefa, pois esta simula a simultaneidade,
utilizando-se de vários recursos, sendo o principal o
compartilhamento de tempo de uso do processador entre
vários processos.
Monousuário vs. Multiusuário

Monousuário
•O SO controla e considera apenas um usuário
por vez.
•Ex. MS-DOS

Multiusuário
•O SO identifica usuários diferentes por suas
contas (username e senha) e permite perfis
diferentes.
•Ex. Mac OS, Windows XP, Linux...
Sistemas Operacionais Clássicos



Batch: Sistema Operacional em lote, era utilizado por terminais
de máquinas de grande porte, que reuniam um “lote de
programas” para enviar para execução, onde o usuário não
interage com o seu programa.
Time-sharing: permite que diversos usuários compartilhem o
computador onde cada usuário possui seu programa (ou parte
dele) na memória principal e o processador é alocado por um
pequeno período de tempo (fatia de tempo ou time slice) a cada
programa de usuário.
Real-time: responde dentro de um período de tempo previamente
especificado (geralmente muito pequeno), a estímulos gerados
externamente e utiliza conceitos de multiprogramação,
oferecendo facilidades para as aplicações de tempo real.
Estrutura do SO: Sistema Camadas

Estrutura em camadas

Modularidade

Hierarquia

Facilita evolução e adaptação a
novos ambientes (Flexibilidade)
Estrutura do SO: Sistema Camadas

Estrutura em camadas

Modularidade

Hierarquia

Facilita evolução e adaptação a
novos ambientes (Flexibilidade)
Vídeo

A evolução dos Computadores e suas Gerações
https://www.youtube.com/watch?v=aCAyrscLwKM
Referências


Sistemas Operacionais Modernos – 2ª Edição. A.
Tanenbaum, 2003.
Modern Operating Systems 3 e. Prentice-Hall, 2008.
Introdução a Sistemas Operacionais
Prof. Alexandre Monteiro
Recife
‹#›
Download