Sistemas de Computação

Propaganda
Introdução à
Computação: Sistemas
de Computação
Beatriz F. M. Souza
([email protected])
http://inf.ufes.br/~bfmartins/
Computer Science Department
Federal University of Espírito Santo
(Ufes),
Vitória, ES – Brazil
1
Arquitetura von Neumann – Revisão
Aula Passada
• Arquitetura von Neumann – Parte 5:
– Entrada/Saída;
– Barramentos.
2
Sistemas de Computação
• Sistemas de Computação - Componentes:
– Hardware: São todas as partes físicas que compõem
um dispositivo seja ele um aparelho de TV, um
telefone, um avião, um computador e etc. No
contexto dos Sistemas de Computação estamos
tratando apenas dos hardwares computacionais;
– Software: Representa a parte lógica e processável de
qualquer dispositivo que é executada sob o
hardware;
– Peopleware: São todos os recursos humanos
envolvidos nas tarefas, direta ou indiretamente
relacionadas ao funcionamento de um sistema.
3
Sistemas de Computação
• O Software é dividido em:
– Aplicativos: São programas com funções específicas que
auxiliam-nos em tarefas que para nós são custosas, ou pela
quantidade de dados envolvidos, ou pela complexidade
destes dados, ou pelo tempo limitado necessário para
obtenção de soluções, ou pela combinação de várias destas
características;
– Sistema Operacional: É composto por um conjunto de
programas que controla todo o funcionamento do
computador, e que por ser executado sob o nível 2 tem
controle direto sob importantes aspectos do hardware, sem
no entanto ser inteligível para seres humanos, já que nos
provê recursos para os níveis superiores ao nível 3.
4
Sistemas de Computação
• Software Básico:
– São classificados como:
• Sistemas Operacionais;
• Ambiente Operacional, Interface Gráfica e Rede;
• Linguagens de Programação:
– Sintaxe;
– Semântica;
– Montadores, interpretadores e compiladores.
5
Sistemas de Computação
• Sistemas Operacionais:
– Programa cuja principal função é a de coordenar a
interação entre hardware e software, e a
transferência de informações entre a memória da
unidade do sistema e os drives;
– São classificados como:
• Monousuário/Monotarefa: MS-DOS (Microsoft);
• Multitarefas: OS/2 (IBM), Windows 2000, Windows XP;
• Multiusuário: UNIX;
– Observação: A partir da versão 95, o Windows se
tornou um Sistema Operacional (o Windows 3.11 e
seus antecessores eram Ambientes Operacionais).
6
Sistemas de Computação
• Sistemas Operacionais:
– Podem ser estruturados de diversas maneiras:
• Sistemas monolíticos:
– Também conhecida como estrutura simples, consiste
basicamente de um único programa subdividido em
várias sub-rotinas, as quais tem permissão para
chamar umas às outras;
– Os programas finais construídos nestes SOs é feita com
base em módulos compilados separadamente unidos
por meio de um Linker (ligador);
– Exemplos: UNIX, MS-DOS, etc.
7
Sistemas de Computação
• Sistemas Operacionais:
– Podem ser estruturados de diversas maneiras:
• Sistemas em camadas:
– Com o aumento da complexidade dos softwares surgiu
a necessidade de se criar módulos para melhor
organização das funções do SO;
– Nesta abordagem, o SO é repartido em níveis onde o
mais baixo é o nível (ou camadas) mais próximo ao
hardware e o mais alto está mais próximo da
interface;
– Esta estrutura é de fato um pouco mais lenta, porém é
mais eficiente no contexto do controle do hardware e
de aplicações;
– Exemplos: Windows;
8
Sistemas de Computação
• Sistemas Operacionais:
– Podem ser estruturados de diversas maneiras:
• Sistemas em camadas:
– A partir desta estrutura surgiu o conceito de Máquina
Virtual, que nada mais é do que uma cópia via
software de uma máquina real;
– Pode-se executar mais de uma MV em um mesmo
hardware, ou criar diferentes MVs para hardwares
diferentes;
9
Sistemas de Computação
• Sistemas Operacionais:
– Podem ser estruturados de diversas maneiras:
• Sistemas em camadas:
– As vantagens do uso de MVs são:
1. Proteção total aos vários recursos do Sistema,
pois cada máquina virtual é totalmente isolada
das demais;
2. O compartilhamento dos recursos é possível
compartilha-se o disco através de software ou
implantando uma rede de máquinas virtuais;
3. É uma opção para pesquisa em sistemas
operacionais, pois ele simula uma máquina em
software. Se houver erros apenas aquela
máquina virtual será afetada;
10
Sistemas de Computação
• Sistemas Operacionais:
– Podem ser estruturados de diversas maneiras:
• Sistemas cliente/servidor:
– São modelos computacionais que distinguem dois tipos
básicos de equipamentos: Servidores e Clientes;
– Servidores e Clientes são interligados entre si por meio
de uma rede de computadores.
– Nesta estrutura as funções principais são executadas
nos Servidores, e os clientes são tratados meramente
como dispositivos de E/S para o servidor (terminais);
– Exemplos: UNIX, CSP(IBM Cross System Product).
11
Sistemas de Computação
• Sistemas Operacionais:
– São divididos em partes com funções diferentes:
• Kernel (núcleo), também conhecido como executivo em
tempo real;
• Interface, que pode ser apenas um Shell (do inglês
“cápsula”) ou ser composta também de uma parte gráfica
mais amigável, também conhecida como GUI (Graphical
User Interface);
• Programas residentes, que são executados independente
da vontade do usuário, estando portanto sob a gestão do
SO. Por exemplo: a própria GUI é um programa residente.
12
Sistemas de Computação
• Sistemas Operacionais - Kernel:
– É responsável pela execução de diversas operações
importantes:
• Execução de Boot (Bootstrap);
• Gerência de Processos (ou Tarefas);
• Escalonamento de Processos (ou Tarefas);
• Comunicação entre processos;
• Gerência de Memória;
• Gerência de Arquivos;
• Gerência de E/S (I/O);
• Sistema de Proteção;
• Interpretação de comandos.
13
Sistemas de Computação
• Sistemas Operacionais - Conceitos:
– Um processo ou tarefa é um programa, ou uma porção dele,
em alguma fase de execução. Um programa pode consistir de
várias tarefas, cada uma com funcionamento próprio ou como
uma unidade (talvez se comunicando entre
si periodicamente);
– Uma thread (fileira, linha) é uma parte separada de um
processo. Um processo pode consistir de várias threads cada
uma das quais sendo executada separadamente. Por
exemplo, uma thread poderia tratar refresh e gráficos na tela,
outra thread trataria impressão, outra thread trataria ações
do mouse ou do teclado.
14
Sistemas de Computação
• Sistemas Operacionais - Kernel:
– Execução de Boot (Bootstrap):
• O termo vem do Inglês e em uma tradução literal significa
“levantar-se pelos cadarços das botas”;
• Refere-se ao processo de inicialização do SO onde por si só
o sistema é capaz de inicializar-se a partir do zero;
• Durante o boot, logo após executar os testes do Post, a
BIOS inicia a carga do SO;
• Independentemente de qual sistema de arquivos seja
usado, o primeiro setor do HD será reservado para
armazenar informações sobre a localização do sistema
operacional, que permitem a BIOS iniciar seu
carregamento.
15
Sistemas de Computação
• Sistemas Operacionais - Kernel:
– Execução de Boot (Bootstrap):
• No setor de boot é registrado:
– Qual sistema operacional está instalado;
– Com qual sistema de arquivos a memória secundária
foi formatada;
– Quais arquivos devem ser lidos para inicializar o PC;
• Geralmente também são gravadas mensagens de erro,
como a clássica "Non-System disk or disk error...“;
• Quando ocorre uma falha neste setor o dispositivo não
poderá mais ser usado para inicialização do computador.
16
Sistemas de Computação
• Sistemas Operacionais - Kernel:
– Gerência de Processos:
• As máquinas de hoje usam o conceito de
Pseudoparalelismo (paralelismo aparente), que
corresponde à forma de chavear o Processador em
diversos processos (programas) criando desta forma uma
ilusão de paralelismo (a execução parece ser simultânea
aos olhos humanos);
• Este chaveamento deve ser rápido e é chamado de
Multiprogramação.
17
Sistemas de Computação
• Sistemas Operacionais - Kernel:
– Gerência de Processos:
• Embora cada processo seja uma entidade independente,
muitas vezes os processos precisam interagir com os
outros;
• Para gerenciar esta interação e o escalonamento dos
processos é necessário definir os estados de cada
processo:
18
Sistemas de Computação
• Sistemas Operacionais - Kernel:
– Escalonamento de Processos:
• Quando um computador é multiprogramado, ele muitas
vezes possui diversos processos que competem pela CPU,
surgindo assim a necessidade de alguma entidade para
escalonar a CPU entre os processos, que é chamada de
escalonador;
• O escalonador de processos está em um nível mais baixo
do SO para que seja possível fazer o controle destes
processos:
19
Sistemas de Computação
• Sistemas Operacionais - Kernel:
– Escalonamento de Processos:
• Um escalonador deve possuir um algoritmo de
escalonamento que se preocupe com 5 regras:
1. Justiça: Todos processos devem ter acesso a CPU;
2. Eficiência: A meta do escalonador é chegar mais
perto dos 100% de utilização da CPU;
3. Eficácia: Minimizar o Tempo de Resposta;
4. Turnaround: Minimiza os usuários batch;
5. Throughput: Maximizar o número de jobs (trabalhos)
processados;
20
Sistemas de Computação
• Sistemas Operacionais - Kernel:
– Algoritmos de Escalonamento:
21
Sistemas de Computação
• Sistemas Operacionais - Kernel:
– Comunicação entre Processos:
• Frequentemente os processos precisam se comunicar
entre si (uns com os outros), e isso deve ocorrer
preferencialmente de forma estruturada e sem
interrupções (sempre que possível);
• Três aspectos são importantes:
– A troca de informações;
– A garantia da não invasão do espaço físico de outro
processo;
– A garantia da não alteração de dados que estão sendo
processados por outro processo.
22
Sistemas de Computação
• Sistemas Operacionais - Kernel:
– Gerência de Memória:
• SOs mais simples não trabalham com multiprogramação,
ou seja, alocam um processo na memória o executam até
que seja terminado;
• Porém a troca de processos entre memória e disco para
sistemas multiprogramados é uma realidade;
• Para este caso, em que a soma dos espaços de memória
requeridos por todos os processos é maior que a
memória primária, é necessário levar os dados não
utilizados para o disco, sendo necessário um controle
através de mapa de bits;
• Este processo é conhecido como uso de Memória Virtual,
onde uma parte do disco é separada para esta tarefa;
23
Sistemas de Computação
• Sistemas Operacionais - Kernel:
– Gerência de Memória:
• A utilização de Memorial Virtual é recomendada, mas o
algoritmo de substituição de páginas deve ser eficiente
para garantir o desempenho do processo;
• Recomenda-se o uso do algoritmo do envelhecimento
(aging) e o WSClock;
• Porém, apenas a escolha do algoritmo não é o suficiente,
preocupação com o tamanho da página e a política de
alocação são fundamentais.
24
Sistemas de Computação
• Sistemas Operacionais - Kernel:
– Algoritmos de substituição:
25
Sistemas de Computação – Próxima Aula
• Sistemas de Computação:
– Façam o exercício de simulação da aula passada para
garantir sua pontuação de laboratório.
Continua na próxima aula!
Até breve.
26
http://nemo.inf.ufes.br/
27
Download