Buscar

Aula 1 Introdução

Prévia do material em texto

03/03/2017
1
Fundamentos de Sistemas 
Operacionais
Análise e Desenvolvimento de Sistemas
Prof. MSc. Douglas Rodrigues
E-mail: dogrodrigues@gmail.com
Introdução
Fundamentos de Sistemas Operacionais
Considerações Iniciais
� Um computador digital é uma máquina capaz 
de nos solucionar problemas através de 
instruções que lhe são fornecidas
� Um programa é uma sequência de instruções 
que descreve como executar uma determinada 
tarefa
3
Introdução
� O que é um sistema operacional?
� Ele possui duas funções:
� Estender a máquina: 
� Na perspectiva do usuário ou programador, é uma 
abstração do hardware, e faz o papel de intermediário 
entre o software (programas do usuário) e os 
componentes físicos do computador (hardware)
� Gerenciar recursos: 
� Como gerenciador de recursos, o SO controla quais 
aplicações (processos) podem ser executadas, 
quando devem ser executadas e quais recursos 
(memória, disco, periféricos) podem ser utilizados
4
Introdução
A importância do sistema operacional (SO)
� Sistema sem SO
� Gasto maior de tempo de programação
� Aumento da dificuldade
� Usuário preocupado com detalhes de hardware
5
Introdução
� Sistema com SO
� Maior racionalidade
� Maior dedicação aos problemas de alto nível
� Maior portabilidade
6
03/03/2017
2
Introdução
� Definição de sistema operacional
� Um sistema operacional é um programa, ou 
conjunto de programas, inter-relacionados, cuja 
finalidade é agir como intermediário entre o usuário 
e o hardware
� Possui várias funções, entre elas:
� Apresentar uma máquina mais flexível
� Permitir o uso eficiente e controlado dos componentes 
de hardware
� Permitir o uso compartilhado e protegido dos diversos 
componentes de hardware e software, por diversos 
usuários
7
Introdução
Interação com o sistema operacional
� O usuário:
� Interage com o SO de maneira direta, através de 
comandos pertencentes à uma linguagem de 
comunicação especial, chamada linguagem de 
comando
� Ex: JCL (Job Control Language), DCL (Digital 
Control Language) e outras
8
Introdução
Interface texto
(linha de comando)
MS-DOS
9
Interface texto
(linha de comando)
Linux
Introdução
Interface gráfica 
(GUI) 
Windows 7
10
Introdução
Interação com o sistema operacional
� Os programas de usuário:
� Invocam os serviços do SO por meio das 
chamadas ao sistema operacional (system calls)
11
Introdução
A evolução dos sistemas operacionais
� O alcance e extensão dos serviços de um SO 
dependem das necessidades e características 
do ambiente que deve suportar
� Um SO pode processar sua carga de trabalho 
(workload) de duas formas:
� Serial: neste, os recursos são dedicados à um 
único programa, até o seu término
� Concorrente: os recursos são dinamicamente 
reassociados entre uma coleção de programas 
ativos, em diferentes estágios de execução
12
03/03/2017
3
Introdução
Um breve histórico
� 1ª geração de computadores (1945-1955)
� Computadores à válvula
� Ausência de um SO: a programação era feita diretamente 
em linguagem de máquina
13
Colossus Mark I
Introdução
14
ENIAC
Introdução
� 2ª geração de computadores (1955-1965)
� Invenção do transistor (William Shockley, John 
Bardeen e Walter Brattain)
� Uso da linguagem Assembler e FORTRAN
� SOs do tipo lote (batch)
15
Introdução
� Até 1956:
16
Introdução
� 1957: uso de sistema auxiliar (técnica do 
spooling)
17
Introdução
� 1959: 
� Introdução de canais autônomos de entrada/saída
� Criação das interrupções
� Entrada/saída em paralelo com o cálculo
18
03/03/2017
4
Introdução
� 1960: 
� Uso de spooler automático
� Invenção dos discos e tambores magnéticos
� SOs típicos: FMS (Fortran Monitor System) e 
IBSYS (da IBM)
19
Introdução
� 3ª geração de computadores (1965-1980)
� Invenção dos circuitos integrados (chips) com baixa 
escala de integração (SSI - Small Scale Integration)
� Sistema OS/360 (IBM): primeiro a usar circuitos SSI 
20
Introdução
� 3ª geração de computadores (1965-1980)
� Introdução dos conceitos de multiprogramação e de 
tempo compartilhado (time sharing)
� Proliferação dos minicomputadores (ex: PDP-1)
� Sistema MULTICS (MULTiplexed Information and 
Computing Service)
21
Introdução
Sistema GE 625
(SO MULTICS)
22
Introdução
� 4ª geração de computadores (1980-atualmente)
� Invenção dos Circuitos Integrados com alta escala 
de integração (LSI – Large Scale Integration)
� Era dos computadores pessoais
� Sistemas operacionais para microcomputadores
� CP/M (8 bits)
� DOS (16 bits)
� UNIX (32 bits)
� Sistemas Operacionais de Rede
� Sistemas Operacionais Distribuídos
23
Introdução
Tipos de sistemas operacionais
� Classificação quanto ao compartilhamento de 
hardware
� Sistemas operacionais monoprogramados
� Só permite um programa ativo em um dado período de 
tempo, o qual permanece na memória até seu término
� Ex: DOS
� Sistemas operacionais multiprogramados
� Mantém mais de um programa simultaneamente na 
memória principal, para permitir o compartilhamento 
efetivo do tempo de CPU e demais recursos
� EX: Unix, VMS, Windows NT, etc.
24
03/03/2017
5
Introdução
� Classificação quanto a interação permitida
� (Fator determinante � tempo de resposta)
� SO para processamento em batch (lote)
� Os jobs dos usuários são submetidos em ordem 
sequencial para a execução
� Não existe interação entre o usuário e o job durante sua 
execução
25
Introdução
Sistema batch (processamento em lote)
26
Introdução
� SO interativo
� O sistema permite que os usuários interajam com suas 
computações na forma de diálogo
� Podem ser projetados como sistemas monousuários ou 
multiusuários (usando conceitos de multiprogramação e 
tempo compartilhado)
27
Introdução
� SO de tempo real
� Usados para servir aplicações que atendem processos 
externos, e que possuem tempos de resposta limitados
� Geralmente sinais de interrupções comandam a atenção 
do sistema
� Geralmente são projetados para uma aplicação 
específica
28
Introdução
� Classificação segundo o porte (Tanenbaum, 
2003)
� SOs de computadores de grande porte
� Ocupam uma sala inteira, ainda encontrados em centros 
de dados de grandes corporações
� Estão ressurgindo como sofisticados servidores Web
� Ex: OS/390
� SOs de servidores
� Servem múltiplos usuários de uma vez em uma rede
� Compartilham recursos de hardware e software 
� Ex: serviço de impressão, de arquivo ou serviços Web
� Ex: Unix, Windows 2000, Linux
29
Introdução
� SOs de multiprocessadores
� Para obter maior potência computacional � conectar 
múltiplas CPUs em um único sistema
� SOs de computadores pessoais
� Função: oferecer uma boa interface para um único 
usuário
� Usados para processadores de texto, planilhas e acesso 
à Internet
� SOs de tempo real
� Tempo é um fator fundamental
� Prazos rígidos para a execução de determinadas tarefas
� Ex: VxWorks e QNX
30
03/03/2017
6
Introdução
� SOs embarcados
� Sistemas embarcados são executados em 
computadores que controlam dispositivos que 
geralmente não são considerados computadores
� Ex: aparelhos de TV, forno de micro-ondas, PDAs, etc.
� Apresentam restrições de tamanho, memória , consumo 
de energia, etc.
� Ex: PalmOS, Windows CE
� SOs de cartões inteligentes
� Executados em cartões inteligentes (do tamanho de um 
cartão de crédito que contém um chip de CPU)
� Podem realizar apenas uma função, como pagamentos 
eletrônicos
31
Introdução
Diferentes visões de um SO
� Visão do usuário da linguagem de comando
� As linguagens de comando são específicas de cada 
sistema
32
Introdução
� Visão do usuário das chamadas do sistema
� Permitemum controle mais eficiente sobre as 
operações do sistema e um acesso mais direto 
sobre as operações de hardware (especialmente 
E/S)
33
Introdução
Estrutura de sistemas operacionais
� Como os sistemas operacionais são 
normalmente grandes e complexas coleções de 
rotinas de software, os projetistas devem dar 
grande ênfase à sua organização interna e 
estrutura
� Estrutura monolítica
� Estrutura do microkernel
� Sistema de camadas
� Máquinas virtuais
34
Introdução
� Estrutura monolítica
� É a forma mais primitiva de SO
� Consiste de um conjunto de programas que 
executam sobre o hardware, como se fosse um 
único programa.
� Os programas de usuário podem ser vistos como 
sub-rotinas, invocadas pelo SO, quando este não 
está executando nenhuma das funções do sistema
35
Introdução
Estrutura monolítica
36
03/03/2017
7
Introdução
Estrutura do microkernel 
� Micronúcleo (microkernel): incorpora somente 
as funções de baixo nível mais vitais
� Executa a maioria dos processos fora do kernel
� O microkernel fornece uma base sobre a qual é 
construído o resto do SO
� A maioria destes sistemas são construídos 
como coleções de processos concorrentes
� Fornece serviços de alocação de CPU e de 
comunicação aos processos
37
Introdução
Estrutura do microkernel
38
Introdução
Sistemas de camadas –
Estrutura hierárquica de níveis de abstração
� Os princípios utilizados nesta abordagem são:
� Modularização: divisão de um programa complexo 
em módulos de menor complexidade. Os módulos 
interagem através de interfaces bem definidas
� Conceito de “informação escondida”: os detalhes 
das estruturas de dados e algoritmos são 
confinados em módulos. Externamente, um módulo 
é conhecido por executar uma função específica 
sobre objetos de determinado tipo
39
Introdução
Estrutura hierárquica de níveis de abstração
� A ideia básica é criar um SO como uma 
hierarquia de níveis de abstração, de modo que, 
a cada nível, os detalhes de operação dos 
níveis inferiores possam ser ignorados 
� Através disso, cada nível pode confiar nos 
objetos e operações fornecidas pelos níveis 
inferiores
40
Introdução
Estrutura hierárquica de níveis de abstração
41
Introdução
Máquina virtual
� Definição: uma duplicata de uma máquina real
� O modelo de máquina virtual (Virtual Machine -
VM) cria um nível intermediário entre o 
hardware e o SO
� Denominado Gerência de Máquinas Virtuais
� Este nível cria diversas máquinas virtuais 
independentes, onde cada uma oferece uma cópia 
virtual do hardware, incluindo modos de acesso, 
interrupções, dispositivos de E/S, etc.
� Como cada VM é independente das demais, é possível 
que cada uma tenha seu próprio SO
42
03/03/2017
8
Introdução
Máquina virtual
43
Introdução
Máquina virtual
� Outro exemplo de utilização desta estrutura 
ocorre na linguagem Java 
� Para executar um programa Java, é necessário 
uma máquina virtual Java (Java Virtual Machine -
JVM)
44
Exercícios
1. Quais são as duas principais funções de um sistema 
operacional? Explique-as.
2. Quais as diferenças entre SOs monoprogramados e SOs 
multiprogramados?
3. Quais as diferenças entre SOs em lote (batch) e SOs 
interativos?
4. Em relação à estrutura de um SO, quais as diferenças entre 
os sistemas monolíticos e sistemas de camadas?
5. Defina e explique o conceito de tempo compartilhado em 
sistemas operacionais.
6. Defina e explique o conceito de processos em sistemas 
operacionais.
45

Continue navegando