Академический Документы
Профессиональный Документы
Культура Документы
Betim
Curso de Sistemas da Informação
Disciplina: Sistemas Operacionais 2º Semestre/2010
Professor: Caio Júlio Martins Veloso
Alunos: Eduardo Matias -
Gabriella Fonseca Ribeiro - 402409
1ª Lista de Exercícios
1
realidade a execução é feita de forma concorrente (máquinas
monoprocessadas). Em um sistema multiprogramado vários programas são
mantidos na memória ao mesmo tempo.
3. O que é Spooling?
Spooling é a técnica de escrever dados em um local temporário (no
disco, por exemplo) para que eles possam ser acessados no futuro. É
geralmente utilizado quando dois devices possuem velocidades de
leitura/escrita muito diferentes; assim é possível ajustar a mesma a cada
um deles. O Spooling é útil porque os dispositivos acessam dados em
diferentes velocidades, o buffer provê uma estação de espera onde o dado
pode ficar armazenado enquanto o dispositivo mais lento fica carregando.
O mais comum exemplo de spooling é o da impressora: Como a impressora
é um periférico muito mais lento que o microcomputador, este teria de ficar
esperando a impressão terminar para, então, executar uma nova tarefa.
Para resolver esse problema, a maioria das impressoras tem um buffer, ou
seja, uma memória interna utilizada para armazenar temporariamente os
dados que estão vindo do microcomputador. Com isso, os dados são
transferidos do microcomputador para o buffer, liberando o micro mais
rapidamente. Quanto maior o buffer da impressora, mais cedo esta liberará
o micro.
No entanto, mesmo existindo esse recurso, o tamanho do buffer da
impressora não é o suficiente para armazenar documentos grandes de uma
só vez. Em outras palavras, na impressão de documentos pequenos, o
aplicativo transfere os dados para o buffer da impressora, ficando livre para
executar outra tarefa. No caso de documentos grandes, mesmo com o
buffer, a impressora "prende" a atenção do aplicativo.
A solução adaptada por todos os sistemas operacionais (com exceção
do DOS) chama-se spooler. O aplicativo gera a impressão e transfere os
dados a serem impressos para o spooler, um programa que ficará sendo
executado em segundo plano. Esse programa ficará gerenciando a
impressão, enquanto o aplicativo ficará livre para executar outra tarefa ou
trabalhar com outro documento. É possível, inclusive, fechar o aplicativo
que gerou a impressão.
2
4. Defina as propriedades essenciais dos seguintes tipos de
Sistemas Operacionais:
3
maior diferença é o tempo de resposta exigido no processamento das
aplicações. Enquanto em sistemas de tempo compartilhado o tempo de
resposta pode variar sem comprometer as aplicações em execução, nos
sistemas de tempo real os tempos de resposta devem estar dentro de
limites rígidos, que devem ser obedecidos, caso contrário poderão ocorrer
problemas irreparáveis. Não existe ideia de fatia de tempo, um programa
detém o processador o tempo que for necessário, ou até que apareça outro
prioritário em função de sua importância no sistema. Esta importância ou
prioridade de execução é controlada pela própria aplicação e não pelo
sistema operacional, como nos sistemas de tempo compartilhado. Esses
sistemas, normalmente, estão presentes em controle de processos, como
no monitoramento de refinarias de petróleo, controle de tráfego aéreo, de
usinas termelétricas e nucleares, ou em qualquer aplicação onde o tempo
de resposta é fator fundamental.
4
operacional de rede, que fornece métodos de compartilhamento de arquivos
e dispositivos. Eles implementam a troca de mensagens entre diferentes
computadores.
5
sistemas simétricos são mais poderosos que os assimétricos, permitindo um
melhor balanceamento do processamento e das operações de
entrada/saída, apesar de sua implementação ser bastante complexa.
Nos sistemas monotarefas, apenas uma tarefa é executa por vez, e o
sistema dedica-se para a tarefa sim. Se por um lado é bom ter todos os
recursos à disposição de uma única tarefa, por outro lado perdemos pois
esses recurso passa a ficar muito tempo ociosos e não há recursos de
segurança.
Já nos sistemas de multitarefas, uma série de trabalhos são
executados simultaneamente, compartilhando os recursos existentes na
máquina. Há aumento da produtividade e redução de custos, mas é
necessário definição de rotinas de entrada e saída, gerenciamento de
memória, agendamento de CPU para as tarefas prontas para execução e
alocação de dispositivos, consumindo maior energia e gerando mais calor,
necessitando também de um bom dissipamento do mesmo.
6
Gerência de memória
Alocação e desalocação de memória
Gerência de entrada/saída
Operações de entrada/saída
Manipulação de arquivos e diretórios
7
O Windows Vista 64 bits, por exemplo, exige que todos os drivers de
modo kernel sejam assinados digitalmente. A assinatura digital fornece
identidade e integridade do código. Um módulo de kernel que esteja
corrompido ou tenha sido submetido à falsificação não será carregado.
Qualquer driver que não esteja devidamente assinado não consegue inserir
o espaço de kernel e irá falhar para ser carregado.
8
Memória para conter o código e dados do programa;
Um conjunto de registradores para suportar a execução.
O SO é responsável pelas seguintes atividades com relação a
gerência de processos:
• Criação e deleção de Processos.
• Suspensão e retomada de processos.
• Fornecimento de mecanismos para:
• sincronização de processo
• comunicação de processo
São utilizados algoritmos para determinar qual processo será
executado em determinado momento e por quanto tempo.
Além disso, os processos podem comunicar-se, isto é conhecido como
IPC (Inter-Process Communication). Os mecanismos geralmente utilizados
são:
sinais;
pipes;
named pipes;
memória compartilhada;
soquetes (sockets);
trocas de mensagens.
O sistema operacional, normalmente, deve possibilitar o
multiprocessamento (SMP ou NUMA). Neste caso, processos diferentes e
threads podem ser executados em diferentes processadores. Para essa
tarefa, ele deve ser reentrante e interrompível, o que significa que pode ser
interrompido no meio da execução de uma tarefa.
9
11. Quais os atributos são usualmente atribuídos a um processo
para que o mesmo possa ser controlado pelo sistema operacional?
Todas as informações necessárias para controlar a mudança dos
processos são armazenadas num pacote de dados chamado de bloco de
controle de processo, que contém:
um número ID que identifica o processo;
ponteiros para as localizações do programa e seus dados quando o
último processamento ocorreu;
conteúdo dos registradores;
estado de vários flags e switches;
ponteiros para os limites superior e inferior da memória requisitada
para o processo;
uma lista de arquivos abertos pelo processo;
a prioridade do processo;
o status de todos os dispositivos de entrada/saída requisitados pelo
processo.
10
Figura 02: Estados de Um Processo
11
Figura 03: Exemplo de uma Árvore de Processos
12
Eliminação forçada por ausência de recursos do sistema.
13
18. Considere o código em C abaixo sobre o uso da instrução
fork(). Descreva o funcionamento do código. Rodando esse código,
quantos processos são gerados?
int main()
{
int pid;
int pid2;
int i;
pid = getpid();
printf("PID = %4d \n", pid);
for (i=0; i<3; ++i)
{
pid = getpid();
printf("i = %4d, PID = %4d \n", i, pid);
pid2=fork();
if (pid2 != 0) printf("I am the parent %4d, i = %4d \n", pid2, i);
if (pid2 == 0) printf("I am a child %4d, i = %4d \n", pid2, i);
sleep(5);
14
Bibliografia
15
16