Os Sistemas Operacionais
Por: Jaqueline Oliveira • 25/11/2018 • Monografia • 1.355 Palavras (6 Páginas) • 208 Visualizações
1a. Lista de Exercícios de Sistemas Operacionais
Prof. Me. Rodrigo D. Malara
- Qual foi a principal inovação introduzida pela IBM no System/360 ? Quais foram as principais dificuldades encontradas no projeto de ambos hardware e SO ?
A IBM lança o OS/360, um sistema operacional avançado, com compartilhamento de tempo e excelente suporte a discos. Os processos podem ter tamanhos distintos dos tamanhos das partições, o que implica em áreas de memória sem uso no final de cada partição. O número máximo de processos na memória é limitado ao número de partições, mesmo que os processos sejam pequenos. Processos maiores que o tamanho da maior partição não poderá ser carregado na memória, mesmo se todas as partições estiverem livres.
- Enumere quais são as duas principais funções de um Sistema Operacional?
Primeiro tornar a utilização do usuário ao computador mais amigável, segundo utilizar os hardwares com mais eficiência.
- Para quê serve e como funciona o ‘Spooling’ ? Você acha que os computadores pessoais avançados terão o spooling como uma característica padrão no futuro?
O spooling serve para ter sincronismo entre um processo lento com um mais rápido, sim, por que é uma ótima maneira de haver compatibilidades com hardwares e aplicações legada com os mais recentes.
- Explique com as suas palavras o que é:
- Localidade de referência temporal
É quando é acessado o mesmo endereço varias vezes na memória em um curto período de tempo.
- Localidade de referência espacial
É quando são acessados endereços próximos varias vezes na memória em um curto período de tempo.
- Pooling
É um laço de verificação em processos ociosos.
- Interrupções:
- Para quê servem?
Para evitar o desperdício de tempo computacional em loops de software esperando eventos que serão disparados por dispositivos. Ao invés de ficarem parados esperando o evento acontecer, os processadores tornaram-se capazes de realizar outras tarefas enquanto os eventos estão pendentes.
- Explique como foram implementadas (em termos de hardware) nos primeiros PCs
Foi implementado no hardware como um sistema distinto, com linhas de controle.
- O que é um processo?
Programa e todas as estruturas de dados associadas a sua execução.
- Descreva detalhadamente como ocorre e quais são as principais fases de uma chamada ao sistema operacional.
As chamadas de sistema frequentemente utilizam uma instrução especial que faz com que a CPU transfira o controle para código de maior privilégio, como especificado previamente, pelo código de menor privilégio. Isto permite que o código de maior privilégio indique por onde ele será chamado e, tão importante quanto, o estado do processador no momento da chamada. Quando a chamada de sistema é invocada, o programa que a invocou é interrompido, e a informação necessária para continuar a sua execução é salva. O processador inicia a execução do código de maior privilégio que, examinando o estado do processador (definido pelo código de menor privilégio) e/ou a sua pilha, determina que serviço fosse requisitado. Quando a chamada termina, o controle retorna para o programa, o estado previamente salvo é restaurado, e o programa continua a sua execução.
- Em todos os sistemas operacionais atuais, pelo menos uma parte das rotinas de tratamento de interrupções é escrita em linguagem de montagem. Por quê?
Porque ações como salvar os registradores e alterar o ponteiro de pilha não podem ser expressas em linguagens de alto nível como C, assim elas são implementadas por uma pequena rotina em linguagem de montagem.
- Defina “troca de contexto” e quais são as 2 situações que levam à sua ocorrência?
Troca de contexto é basicamente o ato de salvar valores do contexto atual de cada programa em seu TCB (Thread Control Block) e possivelmente restaurar o contexto de outra tarefa previamente salvo em outro TCB. Este processo acontece em duas circunstancias, quando ocorre uma interrupção via hardware (ocorrido em um periférico) ou uma interrupção via software(como uma chamada de sistema pela tarefa corrente)..
- Considerando que uma CPU executa instruções uma após a outra, não tomando conhecimento se o programa que está sendo executado é um programa comum do usuário ou uma parte do kernel do SO, qual o mecanismo de hardware permite que um processo seja preemptado para que outro seja escalonado pelo SO?
O escalonador deve aplicar a política de escalonamento escolhida pelo Sistema Operacional. O dispatcher é responsável por realizar a troca de contexto.
- Dê no mínimo 2 exemplos de chamadas ao S.O (do UNIX) das seguintes categorias:
- Gerenciamento de arquivos
s = close(fd) - Fecha o arquivo anteriormente aberto
fd = open (file, abertura ...) - Abre um arquivo (leitura, escrita ou os dois)
- Gerenciamento de memória
position = lseek(fd, offset, whence) - Move o ponteiro de 'fd'
n = read (fd, buffer, nbytes) - Lê dados do arquivo 'fd' no 'buffer', de 'nbytes' valores de bytes
- Gerenciamento de processos
pid = fork() - Essa chamada cria um processo (filho), idêntico ao pai
...