Introdução à Ciência da Computação - fct.unesp.br · Controle de processos Gerenciamento de...

22
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/2015 Rogério Eduardo Garcia 2

Transcript of Introdução à Ciência da Computação - fct.unesp.br · Controle de processos Gerenciamento de...

�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

rio

Ed

ua

rdo

Ga

rcia

2

�2

Arquitetura

18

/06

/20

15

Ro

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

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

�22

Tipos de chamadas de sistema

� Controle de processos

� Gerenciamento de arquivos

� Gerenciamento de dispositivos

� Controle de informações do sistema

� Comunicação

Leitura recomendada

� Capítulo 1, 2 e 3 do livro

– Siberschatz. A. Sistemas Operacionais. 6a. Edição.

Editora John Wiley and Sons.