Buscar

INFO9300 Aula 18 Sistemas de Computação Parte 1 Cópia

Prévia do material em texto

Introdução à 
Computação: Sistemas 
de Computação 
Beatriz F. M. Souza 
(bfmartins@inf.ufes.br) 
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-Systemdisk 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

Continue navegando