introdução à ciência da computação - fct.unesp.br · controle de processos gerenciamento de...
TRANSCRIPT
�1
Faculdade de Ciências e Tecnologia
Departamento de Matemática e Computação
Bacharelado em Ciência da Computação
Introdução à Ciência da Computação
Aula 05
Rogério Eduardo Garcia([email protected])
Arquitetura de Von Neumann
18
/06
/20
15
Ro
gé
rio
Ed
ua
rdo
Ga
rcia
2
�2
Arquitetura
18
/06
/20
15
Ro
gé
rio
Ed
ua
rdo
Ga
rcia
3
Sistemas Operacionais
� Definição: “Um programa que age comointermediário entre o usuário de umcomputador e o hardware”
Silberchatz, et al. “Operating Systems”, 7a. Edição
SO
�3
Sistemas Operacionais
� Gerenciador de recursos
– Cada programa tem um tempo definido para utilizaro recurso
– Cada programa tem um espaço definido no recurso
Modern Operating System. Tanenbaum
Sistemas Operacionais
Silberchatz, et al. “Operating Systems”, 7a. Edição
�4
Sistemas Operacionais
� Por que utilizar um sistema operacional
– Gerenciamento de processos
– Gerenciamento da memória
– Gerenciamento de arquivos
– Gerenciamento de periféricos e dispositivos de
entrada e saída
– Ambiente de rede e distribuído
– Segurança
Gerenciamento de processos
�5
Gerenciamento de Processos
18
/06
/20
15
Ro
gé
rio
Ed
ua
rdo
Ga
rcia
9
Gerenciamento de Processos
� O sistema operacional é responsável pelo ciclo deexecução dos processos: carga, execução efinalização
� Dividir o tempo de processamento entre os processosativos
– Escalonador
� Como escalonar de um processo para o outro?
– Arquitetura de computadores!!!
� Prover a comunicação entre processos
– Estrutura de dados !!!
� Prover a sincronização entre processos
– Algoritmos e métodos!!!
�6
Gerenciamento de memória
Gerenciamento de memória
� O sistema operacional deve gerenciar a memóriadisponível no computador
– Alocação da memória entre os diferentes processos
� Arquitetura de computadores
– Proteção da memória entre diferentes processos
� Arquitetura de computadores
� Memória virtual: utilizar a memória secundária paraaumentar a memória disponível.
– O que acontece quando um processo não está na memóriaprincipal?
– Quais são os processos que serão temporariamentearmazenados na memória secundária?
� Algoritmos e arquitetura de computadores
�7
Gerenciamento de arquivos
� Como armazenar os arquivos de maneiraeficiente?
� Como acessar os arquivos de maneiraeficiente?
� Como prover confiabilidade dearmazenamento?
� Como prover um modelo comum paradiferentes tipos de armazenamento?
– Discos rígidos, cartões de memória
Gerenciamento de periféricos
� Diferentes tipos de periféricos
– Dispositivos de entrada
– Dispositivos de saída
– Dispositivos síncronos
� Monitor
– Dispositivos assíncronos
� Teclado
– Métodos de acesso:
� Polling: espera ativa
� Interrupção
�8
Sistemas Operacionais: FAQ
� Vamos aprender a instalar o Linux? Ou Windows?
– Não
� Você deve aprender?
– Sim
� Por que aprenderemos isso?
– Como o SO é a interface entre as aplicações e o hardware, odesenvolvimento de qualquer camada acima ou abaixo exige conhecimentosólido em sistemas operacionais
� Qual o melhor sistema operacional?
– Depende, qual a finalidade? Ou, o que é melhor? (preço, manutenção,usabilidade)
� Quantos sistemas operacionais existem?
– Vários: Windows, Linux, SunOS, MacOS, uCOS, TRON, SymbianOS,PalmOS, QNX, VxWorks, entre outros
� O Windows é o sistema operacional mais utilizado no mundo?
– Não, sistemas embarcados vendem muito mais que PCs, e vários utilizam umsistema operacional. Ex: TRON (mais de 4 bilhões de aparelhos), eSymbianOS (celulares da Nokia)
Faculdade de Ciências e Tecnologia
Departamento de Matemática e Computação
Bacharelado em Ciência da Computação
Histórico
�9
Histórico
� 1955- 1965
– Sistemas de lote
� 1965- 1980
– Multiprogramação
� 1980 – Atualmente
– Computadores pessoais
– Multitarefas
– Multi-usuário
– Multiprocessador
– Dispositivos Embarcados
Sistemas de lote� Mainframes
Lote Lote multiprogramaçãoCPU compartilhada entre os processos
Aumentar a utilização da CPU durante a
entrada e saída
�10
Faculdade de Ciências e Tecnologia
Departamento de Matemática e Computação
Bacharelado em Ciência da Computação
Interrupções
Interrupções
�11
Tratamento de uma interrupção
Multi-tarefas (tempo compartilhado)
� CPU é compartilhada entre os diversosprocessos
� Uma pequena fatia de tempo é dado a cadaprocesso < 1ms
� Interativo
� Preempção: o processo não controla quando ocontrole da CPU será dado a outro processo
�12
Multiprogramação
Exemplo
JOB1 JOB2 JOB3
Type of job Heavy compute Heavy I/O Heavy I/O
Duration 5 min. 15 min. 10 min.
Memory required50K 100 K 80 K
Need disk? No No Yes
Need terminal No Yes No
Need printer? No No Yes
Stallings. Operating Systems
�13
Exemplo
Uniprogramming Multiprogramming
Processor use 22% 43%
Memory use 30% 67%
Disk use 33% 67%
Printer use 33% 67%
Elapsed time 30 min. 15 min.
Throughput rate 6 jobs/hr 12 jobs/hr
Mean response time 18 min. 10 min.
Stallings. Operating Systems
Faculdade de Ciências e Tecnologia
Departamento de Matemática e Computação
Bacharelado em Ciência da Computação
Sistemas Operacionais -Estruturas
�14
Estrutura Simples
� MS-DOS
– Sem módulos
– Pouca separação entre o nível supervisor e
aplicações
Organização em camadas
� O sistema operacional é dividido em camadas
� Cada camada utiliza serviços de camadasinferiores e provê serviços para camadassuperiores
�15
Núcleo monolítico
� Aplicações do usuário + Núcleo (kernel) dosistema operacional
� O núcleo provê o acesso ao hardware atravésde chamadas de sistema
Módulos
� Módulos: carga dinâmica
– Flexibilidade
– Núcleo menor
� Drivers, Arquivos de sistema, System calls,network driver
�16
Microkernel
� Utiliza um núcleo com serviços mínimos
� Demais serviços (sistemas de arquivos,sistema de IO) são disponibilizados através deservidores
� Benéficios
– Fácil para estender
– Fácil para portar
� Contras
– Desempenho
Máquinas virtuais
� Máquina virtual: camada lógica do hardware
� Fornece uma camada do hardware
� Máquinas virtuais podem executar concorrente
Non-virtual Machine Virtual Machine
�17
VMware
Java
1. Linguagem de programação
2. Application programming interface
(API)
3. Especificação da máquina virtual
�18
Faculdade de Ciências e Tecnologia
Departamento de Matemática e Computação
Bacharelado em Ciência da Computação
Chamadas de sistema (System calls)
Chamadas de sistema
� Através de interrupções de software ou trap
� User mode x Kernel mode
– Acesso a instruções privilegiadas
– Acesso aos periféricos
– Acesso a área de dados específicas
�19
Chamadas de sistema
� Interface de programação entre aplicações e sistema
operacional
� Normalmente acessada via API (application
programming interface) ao invés do acesso direto a
chamadas de sistema
– Exemplos:
� Win32
� POSIX Unix
� Por que utilizar APIs e não chamadas de sistema?
Operating System Concepts – 7th Edition, Jan 14, 2005 Silberschatz, Galvin and Gagne ©2005
API – Chamada de sistema
�20
Exemplo de API
� Win32 API—função para leitura de arquivo
Parâmetros ReadFile()
– HANDLE file—the file to be read
– LPVOID buffer—a buffer where the data will be read into and written from
– DWORD bytesToRead—the number of bytes to be read into the buffer
– LPDWORD bytesRead—the number of bytes read during the last read
– LPOVERLAPPED ovl—indicates if overlapped I/O is being used
API: Biblioteca C padrão
� printf() => invoca a chamada de sistema write()
�21
Chamadas de sistema
� Cada chamada de sistema tem um númeroassociado
� Passagem de parâmetros para chamadas desistema
– Registradores
– Tabela
– Pilha
� A utilização de tabelas e registradores é maisflexível e não é limitada ao número deregistradores do processador
Passagem de parâmetros via registrador