Buscar

725567_SO_s114_T1

Prévia do material em texto

Adaptado de: 
 
FSO1ed : Fundamentos de Sistemas Operacionais, 1ª. ed. , Silberschatz, 
Galvin, Gagne, LTC, 2013. 
ASOM5ed: Arquitetura de Sistemas Operacionais, 5ª. ed, Francis Berenger; 
Machado, Maia, Luiz Paulo, LTC. 2013. 
SOMTB3ed: Sistemas Operacionais Modernos, TANENBAUM, A. S., 3a. ed. 
Pearson, 2010. 
SOD3ed: Sistemas operacionais, DEITEL, Harvey M.; DEITEL, Paul J.; 
CHOFFNES, David R, Pearson, 3 ed, 2005. 
SOJ7ed: Sistemas Operacionais com Java, SILBERSCHATZ, Abraham; 
GALVIN, Peter B.; GAGNE., 7a. ed., Campus. 2008. 
OECTB5ed: Organização Estruturada de Computadores, 5ª. ed., A. S. 
Tanenbaum 
AOCS8ed: Arquitetura e Organização de Computadores, 8ª. ed., W. Stallings. 
 
Sistemas Operacionais (SO) 
 
UD I: Fundamentos Básicos 
2 
 
SISTEMA COMPUTACIONAL (Fig 1.1 FSO1ed modificada) 
3 
 
DEFINIÇÕES DE SO - 1 
 
“É uma camada de software que separa as aplicações do 
hardware e fornece serviços que permitem que cada 
aplicação seja executada com segurança e efetivamente. 
É um software que habilita as aplicações a interagir com o 
hardware de um computador. É, primordialmente, um 
gerenciador dos recursos de hardware (processadores, 
memória, dispositivos (E/S e comunicação) e software 
(aplicações e outras abstrações) que diferentemente do 
hardware, não são objetos físicos.” (Deitel) 
 
4 
 
DEFINIÇÕES DE SO - 2 
 
•“É um programa de controle do computador responsável por alocar 
recursos de hardware e escalonar tarefas. Além disto, ele deve prover 
uma interface com o usuário, ou seja, fornecer ao usuário um modo de 
acessar os recursos do computador.” (Sobell) 
 
•“Um Sistema Operacional pode ser definido como um gerenciador dos 
recursos que compõem o computador (processador, memória, E/S, 
arquivos, etc). Os problemas centrais que o Sistema Operacional deve 
resolver são o compartilhamento ordenado, a proteção dos recursos a 
serem usados pelas aplicações do usuário e a interface entre este e a 
máquina.” (Stemmer) 
 
5 
 
DEFINIÇÕES DE SO - 3 
 
 “É um programa que atua como intermediário entre o 
usuário e hardware do computador, com o propósito de 
propiciar um ambiente para o usuário executar programas 
de forma conveniente e eficiente.” (Silberschatz&Galvin) 
6 
 
FUNÇÕES DO SO 
(VISÃO DO USUÁRIO: “TOP-DOWN”) 
 INTERFACE COM O USUÁRIO: oferece um ambiente 
amigável para o usuário interagir com o computador. 
 
 Funciona como uma MÁQUINA VIRTUAL(MV) ou 
ESTENDIDA, fornecendo uma abstração de alto nível 
dos recursos de hardware da máquina, livrando o 
programador dos detalhes de funcionamento dos 
mesmos. 
7 
 
FUNÇÕES DO SO 
(VISÃO DO PROGRAMADOR DE SISTEMAS: “BOTTON-UP”) 
GERENCIADOR DE RECURSOS : processadores, arquivos, 
memórias, dispositivos de E/S, etc. 
 
Estabelecer critérios de ALOCAÇÃO, USO E PROTE-ÇÃO 
DOS RECURSOS e ordem de acesso aos mesmos, impedindo 
violação de espaço de memória entre os programas dos 
usuários e tentativas de acesso simultâneo a um mesmo 
recurso. 
8 
 
SO: EVOLUÇÃO E CONCEITOS BÁSICOS - 1 
PRIMEIRA GERAÇÃO (1945 - 1955): VÁLVULAS 
 
Programação em linguagem de máquina (L1G): 
chaves e painéis 
 
Inexistência de LP (linguagem de programação) ou 
Sistema Operacional (SO), o operador “fazia tudo” 
9 
 
SO: EVOLUÇÃO E CONCEITOS BÁSICOS - 2 
SEGUNDA GERAÇÃO (1955-1965): TRANSISTORES 
 
Separação entre programação e operação 
 
Desenvolvimento das LP: FORTRAN e ASSEMBLY 
 
Surgimento do SO (Sistema Operacional: seqüenciador 
automático de tarefas, também chamado de MONITOR 
(Ex: FMS e JCL)), dos SISTEMAS EM LOTE 
(“BATCH”) e da técnica de ”BUFFERING”. 
10 
 
PROCESSAMENTO EM LOTES: BATCH (Fig. 1.3 SOM3ed) 
Colocar os cartões no 1401 
Ler cartões para a fita 
Colocar a fita no 7094 e fazer o processamento 
Colocar a fita no 1401 e imprimir a saída 
 
 
11 
 
PROCESSAMENTO EM LOTES: BATCH (Fig. 1.4 ASOM5ed) 
Processamento
Processamento
Processamento
(a)
(b)
(c)
fita de entrada
fita de entrada
cartões perfurados
fita de saída
relatórios
fita de saída
job 2
job n
relatório 1
relatório 2
relatório n
job 1
Processamento em lotes (“batch”) 
 
Programas são organizados em lotes de características 
comuns e executados sequencialmente e sem 
interação com o usuário 
 
 
13 
 
SO: EVOLUÇÃO E CONCEITOS BÁSICOS - 3 
TERCEIRA GERAÇÃO (1965-1980): CIRCUITOS INTEGRADOS 
 
MULTIPROGRAMAÇÃO , TEMPO COMPARTILHADO, 
(“Time-sharing”), MULTIUSUÀRIO e MULTITAREFA -> 
MULTICS --> UNIX 
 
Técnicas de ”BUFFERING” e SPOOL (“Simultaneous 
Peripheral Operation On Line” : Operação simultânea de 
periféricos em linha) 
 
L3G: Cobol, C, Pascal, Basic 
14 
 
Memória
Principal
Dispositivos
de E/ S
UCP
programa/
tarefa
MONOPROGRAMAÇÃO (Fig. 1.6 ASOM5ed) 
15 
 
Monoprogramação: um único programa 
16 
 
Multiprogramação (Fig 1.5 SOMTB3ed) 
17 
 
MULTIPROGRAMAÇÃO 
 
PARTIÇÃO DE MEMÓRIA 4 
MONITOR, SUPERVISOR OU SISTEMA OPERACIONAL 
 
PARTIÇÃO DE MEMÓRIA 3 
PROGRAMA 3 (“JOB3”) 
 
PARTIÇÃO DE MEMÓRIA 2 
PROGRAMA 2 (“JOB2”) 
 
PARTIÇÃO DE MEMÓRIA 1 
PROGRAMA 1 (“JOB1”) 
18 
 
Multiprogramação (dois programas) 
19 
 
Multiprogramação (três programas) 
20 
 
Tempo Compartilhado: Time Sharing (Fig. 1.7 ASOM5ed) 
 
MULTIPROGRAMAÇÃO E MULTITAREFA 
Memória
Principal
Dispositivos
de E/ S
UCP
programa/
tarefa
programa/
tarefa
programa/
tarefa
programa/
tarefa
programa/
tarefa
21 
 
Tempo Compartilhado: Time Sharing Systems 
 
 A Multiprogramação possibilitou o tempo 
compartilhado, permitindo que diversos 
usuários possam interagir diretamente com o 
computador (interativo) 
22 
 
TÉCNICA DE BUFFERING (Fig. 3.5 ASOM5ed) 
Memória
Principal
UCP
Buffer
gravação gravação
leitura leitura
Controlador
23 
 
TÉCNICA DE SPOOLING (Fig. 3.6 ASOM5ed) 
Programa ImpressoraArquivo
de Spool
Sistema OperacionalSistema Operacional
24 
 
Buffer e Spooling 
• Buffers 
• Área de memória para armazenamento temporário que guarda 
dados durante transferências de E/S. 
• São usados principalmente para: 
• Coordenar comunicações entre dispositivos que funcionam em 
diferentes velocidades. 
• Armazenar dados para processamento assíncrono. 
• Permitir que alguns sinais sejam emitidos assincronamente. 
• Spooling 
• Técnica de buffer por meio da qual um dispositivo intermediário, 
como um disco, é interposto entre um processo e um dispositivo de 
E/S de baixa velocidade. 
• Permite que os processos solicitem operações a um dispositivo 
periférico sem que esse dispositivo esteja preparado para atender a 
essa solicitação. 
 
25 
 
SO: EVOLUÇÃO E CONCEITOS BÁSICOS - 4 
QUARTA GERAÇÃO (1980 -> ? ): CIs LSI e VLSI 
 
VLSI (Very Large Scale Integration) 
microcomputadores, multiprocessadores, SOs para 
computadores pessoais (mais amigáveis) (DOS -> 
Windows). 
 
Surgimento das L4G (SQL, C++ e Java), dos SOs de 
Redes (SOR) e dos SOs Distribuídos (SOD) 
26 
 
EVOLUÇÃO DO UNIX (Fig. 15.1 ASOM4ed) 
19
76
19
69 UNICS
19
71 UNIX V1
UNIX V6
19
88
19
79 UNIX V7
19
81 System III
19
82 System V
19
84 SVR2
19
86 SVR3
SVR4
19
92 SVR4.2
Xenix
Minix
AIX
Chorus
SCO Unix
Linux
UnixWare
1BSD
19
86
19
78
19
79 2BSD
19
803BSD
4BSD
19
81 4.1BSD
19
83 4.2BSD
4.3BSD
19
93 4.4BSD
Ultrix
SunOS
Mach
Irix
FreeBSD
OpenBSD
OSF/1
Solaris
27 
 
EVOLUÇÃO DO WINDOWS (Fig. 14.1 ASOM4ed) 
OS/ 2
LAN
ManagerVMSDOS
Windows
 1.0
Windows
3.0
Windows
95
Windows
98
Windows
Me
19
81
19
85
19
90
19
95
19
98
19
99
WNT
3.1
WNT
3.51
WNT
4.0
Windows
2000
19
93
19
95
19
96
20
00
Windows XP
Windows.NET20
01
28 
 
• Windows Vista (2007). 
 
• Windows 2008 Server (2008). 
 
• Windows 7 (2009). 
 
• Windows Phone 7 (2010). 
 
• Windows 8 (2012). 
 
 
Windows: continuação 
29 
 
EVOLUÇÃO DO SO (2007-2013) 
30 
 
Recentes (2013) 
 
• Ubuntu 13.10 (Saucy Salamander) e Ubuntu Mobile OS (Ubuntu Touch). 
 
• Firefox OS. 
 
• XBOX OS (MS). 
 
• Orbis OS (PS4): BSD 
 
• iOS 7. 
 
• Android 4.3 (Jelly Bean) e 4.4 (KitKat). 
 
• Windows 8.1 (2013). 
 
31 
 
PROCESSO (Fig. 5.2 ASOM5ed) 
Programa
Contexto de
Software
Contexto de
Hardware
Espaço de
Endereçamento
32 
 
Estrutura do Processo (Fig. 5.4 ASOM5ed) 
Programa
Contexto de
Software
prioridade de
execução
registrador PC
data/hora
de criação
tempo de
processador
registrador SP
quotas
privilégios
endereços de memória
principal alocados
registrador
de status
owner (UID)
PID
nome
registradores
gerais
Contexto de
Hardware
Espaço de
Endereçamento
33 
 
PCB: Bloco de Controle do Processo (Fig. 5.5 ASOM5ed) 
.
.
.
.
..
.
.
ponteiros
Estado do processo
Registradores
Nome do processo
Prioridade do processo
Limites de memória
Lista de arquivos abertos
34 
 
Linux PCB : struct task_struct (1) 
struct task_struct { 
 long state; 
 long counter, priority; 
 struct task_struct *next_task, *prev_task; 
 struct task_struct *next_run, *prev_run; 
 int exit_code, exit_signal; 
 int pid; 
 struct task_struct *p_opptr, *p_cptr; 
 struct wait_queue *wait_chldexit; 
 struct task_struct *pidhash_next; 
 
 
35 
 
Linux PCB : struct task_struct (2) 
 unsigned long policy; 
 struct tms times; 
 unsigned long start_time; 
 unsigned short uid, gid; 
 struct thread_struct tss; 
 struct files_struct *files; 
 struct mm_struct *mm; 
 struct signal_struct *sig; 
 sigset_t signal, blocked; 
}; 
 
36 
 
Troca (mudança) de Contexto (Fig. 5.3 ASOM5ed) 
Carrega reg istradores do
Processo B
Car rega reg istradores do
Processo A
Sistema Operacional
Salva reg istradores do
Processo A
execu tando
execu tando
execu tando
Salva reg istradores do
Processo B
Processo A Processo B
37 
 
Monothread x Multithread (Fig 2.8 SOMTB3ed) 
38 
 
Monothread x Multithread (Fig 4.1 – SOJ7ed) 
39 
 
Multithread (Fig. 6.3 ASOM5ed) 
Contexto
de hardware
Contexto
de hardware
Contexto
de hardware
Espaço de
endereçamento
Co
nt
ex
to
 d
e
so
ftw
ar
e
Thread 3Thread 2Thread 1
40 
 
 Suporte de hardware para sistemas operacionais (SOD3ed) 
• Recursos que executam funções de sistemas operacionais 
rapidamente em hardware para melhorar o desempenho. 
 
• Recursos que habilitam o sistema operacional para proteção. 
 
• Mecanismos de proteção no processador: evitam que os processos 
acessem instruções privilegiadas ou memória. 
 
• Os sistemas de computador geralmente dispõem de diferentes modos 
de execução: 
• Modo usuário (estado usuário ou estado-problema): o usuário 
pode executar apenas um subconjunto de instruções. 
• Modo núcleo (estado supervisor): o processador pode acessar 
instruções privilegiadas e recursos em nome dos processos. 
41 
 
Interação entre aplicações e o sistema operacional. 
CHAMADAS DE (AO) SISTEMA (Fig. 1.1 SOD3ed) 
42 
 
CHAMADAS DE (AO) SISTEMA (Fig. 4.3 ASOM5ed) 
System Call
Aplicação Biblioteca Hardware
Núcleo do
Sistema Operacional
Núcleo do
Sistema Operacional
43 
 
Suporte de hardware para sistemas operacionais (SOD3ed) 
• Proteção e gerenciamento da memória 
 
• Impede que processos acessem memória que não lhes foi 
designada. 
 
• É implementada por meio de registradores de processador que 
somente podem ser modificados com instruções privilegiadas. 
 
• Interrupções e exceções 
44 
 
 Suporte de hardware para sistemas operacionais (SOD3ed) 
• Temporizadores 
 
• O temporizador de intervalo gera periodicamente uma interrupção. 
 
• Os sistemas operacionais usam temporizadores de intervalo para 
impedir que processos monopolizem o processador. 
 
• Relógios 
 
• Oferecem uma medida de continuidade. 
 
• Um relógio de 24 horas habilita o sistema operacional a determinar a 
hora e a data atuais. 
45 
 
INTERRUPÇÕES E EXCEÇÕES (Fig. 3.2 ASOM5ed) 
46 
 
INTERRUPÇÕES E EXCEÇÕES 
 
São desvios do fluxo de execução de um programa. 
 
1. EXCEÇÃO 
 Desvio forçado do fluxo de execução de um programa causado 
por um evento interno síncrono, ou seja, ocorre devido a própria 
execução das instruções do programa (divisão por zero, 
overflow, instrução inválida, etc.). As exceções podem ser 
geradas com uma resposta a erros ou condições de exceção. 
 
2. INTERRUPÇÕES: HARDWARE e SOFTWARE. 
47 
 
Interrupções e exceções (AOCS8ed – Cap3 ) 
• Mecanismo pelo qual outros módulos (p.e. E/S) podem interromper a 
sequência de processamento normal. 
 
• Programa (ex: estouro da pilha, divisão por zero) 
 
• Timer (ex: gerado por timer dentro do processo, sado na multitarefa 
preemptiva) 
 
• E/S (controlador de E/S) 
 
• Falha de hardware (erro de paridade de memória) 
48 
 
Ciclo de interrupção (AOCS8ed - Cap3 ) 
 Adicionado ao ciclo de instrução. 
 Processador verifica interrupção (Indicado por um sinal de 
interrupção). 
 Se não houver interrupção, busca próxima instrução. 
 Se houver interrupção pendente: 
» Suspende execução do programa atual. 
» Salva contexto. 
» Define PC para endereço inicial da rotina de tratamento de 
interrupção. 
» Interrupção de processo. 
» Restaura contexto e continua programa interrompido. 
49 
 
Transferência de controle (Fig 3.8 AOCS8ed) 
50 
 
Ciclo de instrução com interrupções (Fig 3.9 AOCS8ed) 
51 
 
Interrupções e exceções (SOD3ed) 
• Quando ocorre um evento, a maioria dos dispositivos envia 
ao processador um sinal denominado interrupção. 
 
• As exceções são interrupções geralmente geradas em 
resposta a erros ou condições de exceção. 
 
• O sistema operacional pode responder a uma interrupção 
notificando os processos que estão à espera desses 
eventos. 
52 
 
INTERRUPÇÃO DE HARDWARE (evento externo) 
• Desvio forçado do fluxo de execução de um programa 
causado por um evento assíncrono externo (relógio, 
teclado, disco impressora, etc). 
 
• Quando ocorre um evento, a maioria dos dispositivos envia 
ao processador um sinal denominado interrupção 
53 
 
Pinagem lógica de uma CPU (Fig 3.32 OECTB5ed) 
• As setas indicam sinais de entrada e sinais de saída. 
• Os segmentos de reta diagonal indicam que são utilizados vários pinos. 
54 
 
PIC: Controlador de interrupção 8259A (Fig 3.40 OECTB5ed) 
55 
 
Interrupções de hardware (Fig 5.4 SOMTB3ed) 
56 
 
INTERRUPÇÃO DE HARDWARE (Fig 1.11 SOMTB3ed) 
57INTERRUPÇÕES DE SOFTWARE 
São instruções especiais que fazem parte do conjunto de 
instruções de um processador, mas que tem um 
comportamento semelhante às interrupções de hardware. 
Os serviços do Sistema Operacional (SO) são geralmente 
obtidos através deste mecanismo (chamadas ou “traps” ao 
SO). 
 
Exemplos: 
INT 0x80 (Linux) 
INT 0x21 (DOS) 
 
58 
 
CHAMADAS AO SISTEMA: INTERRUPÇÕES DE SOFTWARE (Fig. 4.2 ASOM4ed) 
59 
 
VETORES DE INTERRUPÇÃO 
• Vetor de interrupção é um mecanismo usado para indicar 
o dispositivo está solicitando operação de E/S. Eles 
servem para indicar uma entrada na tabela de vetores de 
interrupção. 
 
• A Tabela de vetores de interrupção armazena os 
endereços das rotinas de tratamento de interrupção (RTI) 
de cada dispositivo de E/S, de exceções e das 
interrupções de software. 
 
60 
 
Tabela de vetores de interrupções e exceções para x86 (Tab 12.3 AOCS8ed) 
61 
 
Tabela de vetores de interrupções e exceções para x86 (Tab 12.3 AOCS8ed)

Continue navegando