Você está na página 1de 4

Atividade referente a aula de Suporte ao Sistema Operacional

Arquitetura de Computadores
Licenciatura em Computação – 3º Período
Professor: Fernando Turíbio de Moura
Aluno: Diego Dias de Souza

Observações
Está atividade pode ser feita em até 2 pessoas. A atividade tem valor de 10.0 pontos e deverá ser entregue
respondida até as 23:59 do dia 24/11/2021 pela plataforma google classroom. Pesquise também na internet.
Dúvidas por e-mail ou pelo google classroom.

1. O que é um Sistema Operacional?


O sistema operacional também conhecido como OS é o programa que permite que
você se comunique com seu computador, inter-relacionado cuja finalidade é agir
como intermediário entre o usuário e o hardware.

2. Liste e defina resumidamente os principais serviços fornecidos por um sistema


operacional.
Principal função: ▫ Controlar o funcionamento de um computador, gerenciando a
utilização e o compartilhamento dos seus diversos recursos, como processadores,
memória e dispositivos de entrada e saída

3. Liste e defina resumidamente os principais tipos de escalonamento do sistema


operacional.
O escalonador de processo é um processo que deve ser executado quando da
mudança de contexto (troca de processo), ao passo que ele escolhe o processo que
será executado pela CPU, sendo o escalonamento realizado com o auxílio do
hardware. O escalonador deve ainda se preocupar com a eficiência da CPU, pois o
chaveamento de processos é complexo e custoso, uma vez que ele afeta o
desempenho do sistema e por sua vez a satisfação do usuário
Escalonador de curto prazo: Seleciona entre os processos em estado de pronto que
estão na memória, para serem executados pelo processador, após a interrupção de
um ciclo, uma interrupção de E/S, uma chamada de sistema ou outra forma de
sinal. Assim o escalonador de curto prazo faz decisões de escalonamento muito
mais frequentemente que os de médio e longo prazo. Uma decisão de
escalonamento deve ser feita no mínimo a cada fatia de tempo, e estas são bem
curtas. Escalonador de médio prazo: Seleciona entre os processos que estão na
memória virtual. Ele temporariamente remove o processo da memória principal e o
coloca na memória secundária swap fazendo as operações de swapping
in e swapping out. O escalonador a médio prazo pode realizar a operação swap out
em vários casos, como: um processo que não está mais ativo após um tempo, um
processo que tem baixa prioridade, um processo que tem tido falta de
página frequentemente, um processo que está ocupando uma larga quantidade de
memória que precisa ser removido da memória principal para outros processos
serem carregados.
Escalonador de longo prazo: Seleciona os processos que estão na memória
secundária e que serão levados para a memória principal. Isto é, quando uma
tentativa é feita de executar um programa, sua admissão ao conjunto de processos
sendo executados é autorizada ou atrasada pelo escalonador de longo prazo. Assim,
este escalonador dita quais processos serão executados em um sistema, e o degrau
de concorrência do sistema, ou seja quantos processos serão executados em
concorrência, e como a divisão entre processos I/O bound(orientado à E/S) e CPU
bound(orientados à CPU) deve ser feita. Geralmente este escalonador é
responsável pelo Grau de Multiprogramação.

4. Qual é a diferença entre um processo e um programa?


Um programa de computador é uma coleção passiva de instruções, enquanto que
um processo é a execução real dessas instruções. Vários processos podem ser
associados com o mesmo programa.

5. Qual é a finalidade do swapping?


O swapping é uma técnica que desenvolvida com o intuito de melhorar o problema
da insuficiência de memória durante a execução de alguns processos em ambientes
multiprogramados.
Consiste basicamente na transferência automática de todo o processo da memória
principal para o disco (swap out) e vice-versa. Durante o tempo em que o processo
fica em swap, o outro que necessitava de memória entra em execução ocupando o
espaço deixado pelo que saiu.

6. Se um processo pode ser atribuído dinamicamente a diferentes locais na


memória principal, qual é sua implicação para o mecanismo de
endereçamento?
Embora a maioria dos computadores disponha de uma única CPU que executa
instruções uma a uma, certos projetos mais avançados incrementaram a
velocidade efetiva de computação permitindo que várias instruções sejam
executadas ao mesmo tempo. Um computador com múltiplos processadores que
compartilhem uma memória principal comum é chamado um multiprocessador.
O sistema que suporta tal configuração é um sistema que suporta o
multiprocessamento.

7. É necessário que todas as páginas de um processo estejam na memória


enquanto o processo está sendo executado?
Todo programa precisa utilizar memória para ser executado. Quando um programa
inicia sua execução, ele começa a solicitar memória ao sistema operacional, ou
seja, faz a alocação de memória necessária para a sua execução. A alocação de
memória está dividida em 3(três) partes:
Alocação Estática: Decisão tomada quando o programa é compilado. Quando o
programa é executado o Sistema operacional o lê e cria um processo, sendo o
programa uma noção estática e o processo o programa em execução, que é criado
em armazenamento primário e após isso recebe um espaço na memória. O espaço
de memória é dividido em várias partes, uma das partes se chama segmentos de
memória, que armazena dados estáticos, e outro se chama segmento de código que
guarda instruções do programa. Quando o programa é executado o
registrador PC apontará para determinado endereço do segmento de código do
processo, que se chama TEXT. Para que se realize a alocação estática o compilador
deve saber o total de memória que está livre, mandar esta informação para o S.O
para que este crie um segmento de dados.
Alocação Dinâmica: Decisão é adiada até a execução. (Permite Swapping) Os
objetos alocados dinamicamente podem ser criados e liberados a qualquer
momento, em qualquer ordem, o que difere dos objetos locais das funções, que são
criados e destruídos em uma ordem específica. Dado isto, é preciso organizar a
memória para objetos dinâmicos de uma forma que possibilite a gestão do tempo
de vida dos objetos por parte do programador. A memória reservada para objetos
dinâmica costuma ser chamada de heap, existem várias formas de organizar um
heap. Em linguagens sem a gestão automático (linguagem C), da memória
dinâmica, uma organização usual do heap é uma lista encadeada de blocos livres,
porém este tipo de organização pode ter problemas devido à fragmentação dos
blocos. Já em linguagens com gerenciamento automático de memória dinâmica
(Java), a organização do heap depende da parte do sistema de tempo de execução
encarregada desta gestão. Este componente é normalmente chamado de coletor de
lixo. Alguns tópicos para podermos entender melhor: • Carrega vários processos na
memória ao mesmo tempo; • Quando chega um novo processo, e a memória
principal está toda ocupada, escolhe um processo, grava-o no disco, e libera
memória para o próximo.
Alocação Local: Este processo de alocação é usado para variáveis que são locais a
funções e sub-rotinas. Isso significa que o processo em execução deve manter
acessível as variáveis locais da função ou procedimento que está executando no
momento. Além disso, pelas propriedades do escopo em blocos, também devem
estar acessíveis as variáveis de blocos mais externos. Em linguagens que permitem
a definição de funções aninhadas, ter acesso a variáveis de quaisquer funções
definidas externamente à função atualmente em execução. Como uma função pode
chamar outras funções, um número arbitrário de funções pode estar no meio de sua
execução em um determinado momento, mesmo que apenas uma esteja realmente
sendo executada, isso indica que o contexto de várias funções deve ser mantido
enquanto as mesmas não concluíram sua execução.

8. As páginas de um processo na memória principal precisam ser contíguas


(isto é, tem que estar próximas umas das outras)?
Alocação Contígua: Implementada nos primeiros Sistemas Operacionais e ainda
existentes em alguns sistemas mono programáveis.
Memória dividida em duas partes, Sistema Operacional e programa do usuário.
O programador tem controle sobre toda a memória principal, podendo acessar
qualquer posição da memória, inclusive onde está residente o Sistema Operacional.
Um mecanismo de proteção utilizado é delimitar a área do Sistema Operacional
que delimita a área do mesmo. Fácil implementação e código reduzido, porém,
Ineficiência no uso do processador e da memória pois apenas um usuário pode
dispor desse recurso.
Programas limitados ao tamanho da memória disponível.
Overlay (sobreposição) – Solução encontrada para dividir o programa em partes
(módulos), de forma que pudessem executar independentemente uma da outra,
utilizando uma mesma área de memória.
A definição das áreas de Overlay são de responsabilidade do programador através
de comandos específicos da linguagem utilizada.

9. É necessário que as páginas de um processo na memória principal


estejam em ordem sequencial?
Em computação, um processo é uma instância de um programa de computador que
está sendo executada. Ele contem o código do programa e sua atividade atual.
Dependendo do sistema operacional SO, um processo pode ser feito de
várias linhas de execução que executam as instruções concorrentemente.
Um programa de computador é uma coleção passiva de instruções, enquanto que
um processo é a execução real dessas instruções. Vários processos podem ser
associados com o mesmo programa. Por exemplo, abrir várias instâncias do mesmo
programa geralmente significa que mais de um processo está sendo executado.

10. O que é a segmentação e quais são suas vantagens quando ela está visível ao
programador?
Segmentação é uma outra maneira de subdividir a memória. Difere da paginação
nos aspectos: Paginação: invisível ao programador, serve para prover um espaço
maior de endereçamento. Memória dividida em páginas de igual tamanho, com
qualquer conteúdo. Segmentação: em geral visível ao programador, serve para
organizar programas e dados, associando atributos de privilégio e proteção a
instruções e dados. Os segmentos de um programa residem no disco. Apenas
segmentos em uso são carregados na memória. O tamanho de um segmento não é
fixo.
Vantagens da segmentação: Simplifica o crescimento no tamanho de estruturas de
dados. O S.O. pode aumentar ou diminuir o tamanho de um segmento contendo
uma estrutura de dado. Em caso de alteração de alguns segmentos, facilita a
recompilação sem ter que religar e recarregar todo o programa. Facilita o
compartilhamento entre processos: um usuário pode colocar um utilitário ou uma
tabela útil em um segmento que pode ser acessado por outros usuários. Facilita a
proteção: privilégios de acesso podem ser atribuídos de maneira conveniente.

Você também pode gostar