Sistemas Operacionais  
Aula 01 - Introdução  
Edirlei Soares de Lima  
<edirlei@iprj.uerj.br>  
O que é um sistema operacional?  
Um computador moderno consiste em:  
Um ou mais processadores;  
Memória principal;  
Discos;  
Impressoras;  
Diversos dispositivos de entrada e saída;  
Para gerenciar todos esses componentes é  
necessária uma camada de software: o sistema  
operacional.  
O que é um sistema operacional?  
Escrever programas que controlam todos os  
componentes de harware é extremamente  
dificil!  
Solução: sistema operacional  
Sistema operacional: software que controla os  
recursos do sistema computacional e oferece  
ao usuário uma interface para interagir com  
cada um destes recursos.  
O que é um sistema operacional?  
O que é um sistema operacional?  
Sistemas operacionais diferem de programas  
de usuário (aplicações).  
São grandes, complexos e tem vida longa.  
Linux: mais de 5 milhões de linhas de código;  
Importante: o shell não é parte do sistema  
operacional!  
O que é um sistema operacional?  
É uma máquina estendida:  
Esconde uma infinidade de detalhes de operação do  
hardware e dispositivos periféricos;  
Apresenta ao programador uma máquina virtual,  
oferecendo abstrações bem mais fáceis de serem usadas.  
É um gerenciador de recurso:  
Cada programa recebe uma fatia de tempo de uso de um  
recurso;  
Cada programa recebe uma fatia de espaço em um  
recurso.  
O que é um sistema operacional?  
História dos Sistemas Operacionais  
Meados do século XIX: Charles Babbage (1792-  
1871), por volta de 1833, projetou o primeiro  
computador. No entanto, a pouca tecnologia da  
época não permitiu que o projeto tivesse sucesso.  
Máquina analítica:  
Não tinha um SO;  
Percebeu que precisava de um software que possibilitasse  
seu uso;  
História dos Sistemas Operacionais  
Primeira Geração (1940-1955): Válvulas  
1940: John von Neumann cria o primeiro  
computador digital (baseado em válvulas);  
Máquinas enormes que ocupavam salas imensas e  
possuiam milhares de válvulas;  
Não existiam ainda os conceitos de sistema  
operacional e linguagem de programação de alto  
nível;  
História dos Sistemas Operacionais  
Primeira Geração (1940-1955): Válvulas  
História dos Sistemas Operacionais  
Primeira Geração (1940-1955): Válvulas  
O acesso às máquinas era feito por meio de  
reserva de tempo.  
Os programadores faziam sua programação  
diretamente nos painéis das máquinas  
("hardwired");  
Praticamente todos os problemas submetidos  
eram cálculos numéricos diretos (tabelas de seno,  
logaritmos, etc);  
História dos Sistemas Operacionais  
Final dos anos 40: primeiro computador eletrônico  
(transistores)  
ENIAC (Electronic Numerical Integrator And Computer);  
1950: surgem os cartões perfurados  
Os programas eram codificados nos cartões e sua leitura  
era feita por máquina;  
John von Neumann propõe uma programação não  
"
hardwired“: nasce o Assembler/Assembly;  
História dos Sistemas Operacionais  
Segunda Geração (1955-1965): Transistores e  
Sistemas em Batch  
O desenvolvimento dos transistores tornou o  
computador mais confiável possibilitando sua  
comercialização: mainframes;  
No entanto, devido aos altos custos, poucos  
tinham acesso a essa tecnologia somente  
grandes empresas, órgãos governamentais ou  
universidades;  
História dos Sistemas Operacionais  
Segunda Geração (1955-1965): Transistores e  
Sistemas em Batch  
Cartões perfurados ainda são utilizados:  
FMS (Fortran Monitor System)  
História dos Sistemas Operacionais  
Terceira Geração (1965-1980): Circuitos  
integrados e Multiprogramação  
System/360 (IBM): sistema operacional OS/360  
Enorme, complexo, ineficiente, cheio de erros...  
Multiprogramação: Dividir a memória em diversas  
partes e alocar a cada uma dessas partes um job.  
História dos Sistemas Operacionais  
Terceira Geração (1965-1980): Circuitos  
integrados e Multiprogramação  
Time-sharing: cada usuário tinha um terminal on-  
line à disposição;  
A CPU é compartilhada e alocada para os jobs que  
precisam de processamento;  
Exemplo: se 20 usuários estão ativos e 17 estão  
ausentes, o processador é alocado a cada um dos 3 jobs  
que estão sendo executados;  
História dos Sistemas Operacionais  
Quarta Geração (1980-1990): Computadores  
Pessoais  
Com a tecnologia de circuitos integrados de larga  
escala (LSI) surgem chips com milhares de  
transistores encapsulados em um centímetro  
quadrado de silício  
Intel 8080 (1974)  
IBMPC (início dos anos 80)  
Apple Apple e Macintosh  
História dos Sistemas Operacionais  
Quarta Geração (1980-1990): Computadores  
Pessoais  
Sistemas Operacionais:  
MS-DOS, Windows...  
UNIX, LINUX...  
MAC OS...  
História dos Sistemas Operacionais  
Quinta Geração (1990-hoje)  
Sistemas Operacionais Distribuídos:  
Apresenta-se como um sistema operacional  
centralizado, mas que, na realidade, tem suas funções  
executadas por um conjunto de máquinas  
independentes;  
Sistema Operacionais para dispositivos móveis;  
Execução de tarefas com economia de energia (baterias  
limitadas);  
O Zoológico de Sistemas Operacionais  
Sistemas operacionais de computadores de grande  
porte;  
Sistemas operacionais de servidores;  
Sistemas operacionais de computadores pessoais;  
Sistemas operacionais de multiprocessadores;  
Sistemas operacionais de tempo real;  
Sistemas operacionais embarcados;  
Sistemas operacionais para dispositivos móveis;  
Revisão de Hardware  
Conceitos Sobre Sistemas  
Operacionais  
Processos;  
Espaço de endereçamento;  
Arquivos;  
Entrada e saída;  
Segurança;  
Processos  
Um processo consite em um programa em execução.  
Está associado a um espaço de endereçamento e recursos.  
O processo é um envelope que armazena todas as  
informações necessárias para a execução de um programa.  
O SO é responsável pelas seguintes atividades com relação a  
gerência de processos:  
Criação e deleção de Processos.  
Suspensão e retomada de processos.  
Fornecimento de mecanismos para:  
sincronização de processo  
comunicação de processo  
Espaço de endereçamento  
O SO é responsável pelas seguintes atividades  
com relação a gerência de memória (espaço  
de endereçamento):  
Manter informações de que partes da memória  
estão em uso e por quem;  
Decidir que processos carregar quando espaços de  
memória estão disponíveis;  
Alocar e liberar espaço de memória quando  
necessário;  
Arquivos  
O SO é responsável pelas seguintes atividades com relação  
a gerência de arquivos:  
Criação e deleção de arquivo;  
Criação e deleção de diretório;  
Suporte de primitivas para manipular arquivos e diretórios;  
Mapeamento de arquivos na memória secundária;  
Arquivos  
Entrada e Saída  
Existem vários tipos de dispositivos de Entrada/Saída:  
teclados, monitores e impressoras .  
O SO é responsável pelo gerenciamento desses dispositivos:  
Possui um subsistema de E/S para gerenciar seus dispositivos;  
Alguns dos componentes de E/S são independentes de dispositivo,  
aplicam-se para todos os dispositivos;  
Outros são específicos de cada dispositivos (ou família), como drivers;  
Segurança  
Computadores contem muitas informações que os usuários,  
muitas vezes, querem manter confidenciais.  
O SO é responsável por gerenciar o sistema de segurança,  
para que arquivos ou outras informações somente seja  
acessíveis por usuários autorizados.  
Exemplo: permissões rwx para proteção de arquivos em UNIX:  
Exemplo: rwxr-xx  
r = read access;  
x = execute access;  
w = write access;  
Chamadas de Sistema  
Chamadas de sistema são a interface entre o SO (kernel) e os  
programas de usuário.  
São funções oferecidas pelo kernel para programas de usuário.  
Funcionam da mesma forma que funções oferecidas por bibliotecas de  
usuário.  
Exemplo: int read(int fd, char *buffer, int nbytes);  
read nome da chamada de sistema;  
fd descritor do arquivo;  
buffer nome do local de armazenamento ;  
nbytes numero de bytes a ler.  
Chamadas de Sistema  
Chamadas de Sistema  
Chamadas de Sistema  
Chamadas de Sistema  
Chamadas de Sistema  
Exercícios  
Lista de Exercícios 01  
http://www.inf.puc-rio.br/~elima/so/  
Leitura Complementar  
Andrew S. Tanenbaum. Sistemas  
Operacionais Modernos, 3ª Edição,  
Pearson, 2010.  
Capitulo 1: Introdução