Fundamento de Sistemas Operacionais
Por: umanj0doms • 25/4/2018 • Monografia • 1.700 Palavras (7 Páginas) • 351 Visualizações
Lista de Exercícios 1 – Visão Geral e Conceitos Básicos
- Marque “V” para verdadeiro e “F” para falso nas seguintes afirmações.
(F) Geralmente as operações de entrada e saída são realizadas em modo usuário. Em geral, operações de E/S (Entrada/Saída) são proibidas em modo de usuário
(V) O SO é responsável pela alocação de recursos computacionais.
- Qual a importância de um Sistema Operacional (SO)? Como o SO facilita a vida de um programador?
O sistema operacional controla o hardware e coordena o seu uso entre as várias aplicações de programas para os vários usuários. Facilita através do acesso a dispositivos de SO (por meio de drivers).
- Qual a diferença entre modo usuário e modo kernel?
O modo de kernel tem completo acesso ao hardware e pode executar qualquer instrução que a máquina é capaz de realizar.
Já os demais softwares rodam em modo de usuário (podem executar um subconjunto de instruções de máquina).
- Cite ao menos 5 nomes de sistemas operacionais modernos.
Windows, Linux, MacOSx, Android e iOS.
- Quais problemas podem ocorrem em um ambiente de multiprogramação e de tempo compartilhado? Cite ao menos dois.
Em um ambiente de multiprogramação e tempo compartilhado, vários usuários compartilham o sistema simultaneamente. Essa situação pode resultar em diversos problemas de segurança. Exemplo: Competição para utilização de recursos e acessos indevidos a dados de outros usuários/aplicações.
- Qual é o propósito das chamadas de sistemas?
- Cite 5 serviços providos pelos sistemas operacionais e explique porque seria impossível programas em nível de usuário proverem tais serviços?
Lista de Exercícios 3 – Gerenciamento de Processo – Parte I
- Marque “V” para verdadeiro e “F” para falso nas seguintes afirmações.
(F) Processos não podem ser executados concorrentemente em um SO. Todos esses processos podem ser executados concorrentemente.
(F) Um programa pode gerar um único processo. Um programa pode gerar vários processos (Exemplo: vários usuários executando o mesmo programa).
(V) A área de heap de um processo corresponde à área reservada para armazenar estruturas de dados que foram alocadas dinamicamente, isto é, em tempo de execução.
(F) A área de pilha (stack) de um processo corresponde à área reservada para armazenar estruturas de dados que forma alocada dinamicamente, isto é, em tempo de execução. A pilha, a qual contém dados temporários (funções, parâmetros de função, endereços de retorno, variáveis locais).
(F) Quando um processo está sendo criado, ele encontra-se no estado
ready. Quando o processo está sendo criado, encontra-se no estado New (novo). Em ready (pronto), o processo está aguardando para ser atribuído à algum processador
(F) Quando um processo aguarda para ser atribuído a um processado, ele encontra-se no estado new. New (novo), o processo está sendo criado.
(V) Quando um processo aguarda que algum evento ocorra para voltar a sua execução, este encontra-se no estado waiting.
(V) Caso um programa possua múltiplas linhas de execução, a PCB terá múltiplos program counters.
- O que é um processo? Qual a diferença entre um programa e um processo?
Um processo pode ser entendido como um programa em execução. Processo: programa em execução, na qual a execução do processo é dada de maneira sequencial.
Um programa é uma entidade passiva armazenada em um disco (arquivo executável).
Um processo é uma entidade ativa.
Um programa se torna um processo quando a o arquivo executável é carregado na memória.
- Quais tarefas o SO deve implementar para realizar o gerenciamento de processos e threads?
- Criação de deleção de ambos processos de usuários e do próprio SO;
- O escalonamento de processos e das threads dos mesmos;
- Mecanismos de permitir a comunicação de processos;
- Alocação de recursos e tratamento de possíveis conflitos.
- Para executar um processo, é necessário alocar um espaço de memória, colocar o processo nesse espaço, para então ser possível executá-lo. Entretanto, esse espaço de memória que contém o processo, pode ser dividido no mínimo em 4 partes. Liste quais são essas partes e explique a função de cada uma.
- O código do programa (também chamada de seção de texto);
- A atividade corrente incluindo um contador de programa;
- A pilha, a qual contém dados temporários (funções, parâmetros de função, endereços de retorno, variáveis locais);
- Seção de dados, a qual contém as variáveis globais;
- Heap, a qual corresponde à memória alocada dinamicamente em tempo de execução
- Um processo pode se encontrar em 5 possíveis estados. Liste esses estados e explique em que situação o processo se encontrará em cada um desses estados.
- New (novo): o processo está sendo criado;
- Running (em execução): instruções estão sendo executadas;
- Waiting (em espera): o processo está aguardando que algum evento ocorra para voltar a sua execução
- Ready (pronto): o processo está aguardando para ser atribuído à algum processador;
- Terminated (finalizado): o processo terminou sua execução.
- O que é o bloco de controle de processos e por que ele é útil no gerenciamento de um processo (interrupção, retomada de execução, etc.).
Bloco de controle de processo é utilizado para controlar a execução de um processo. As informações contidas nesse bloco permitirão interromper e retomar a execução de um processo, além de garantir a segurança do processo.
...