Sistema Operacional – Conceitos, Gerenciamento de Memória e Processos

Atividade 1 – Respostas Diretas

  • Do que se trata o conteúdo? Apresenta o papel do Sistema Operacional (SO), seu gerenciamento de memória e de processos.
  • Principais assuntos (exemplos)
    • Papel do SO – máquina estendida (ex.: abstração de leitura/escrita de arquivos) e gerenciador de recursos (ex.: arbitragem de impressora).
    • Gerenciamento de memória – endereçamento lógico × físico, partição fixa, partição dinâmica, paginação.
    • Gerenciamento de processos – estados (executando, pronto, esperando), escalonamento (preemptivo × não‑preemptivo), políticas (FCFS, SJF, Round‑Robin).
  • Ponto de maior atenção A diferença entre endereçamento lógico e físico e como a paginação resolve a fragmentação externa.
  • Conclusão O SO atua como camada intermediária que abstrai hardware, controla recursos e garante que múltiplos processos compartilhem CPU e memória de forma eficiente.

Atividade 2 – Resumo dos Tópicos

1. Papel do Sistema Operacional

O SO é um software de sistema que fornece uma interface entre o usuário e o hardware, permitindo a execução de aplicações sem que o usuário precise lidar com detalhes de baixo nível.

1.1 Máquina Estendida

Abstrai operações de I/O (ex.: abrir, ler, escrever e fechar arquivos) de forma simples e de alto nível, ocultando detalhes como setores de disco ou blocos de memória.

1.2 Gerenciador de Recursos

Coordena o uso concorrente de dispositivos (CPU, impressora, disco, memória) definindo políticas de acesso e evitando conflitos.

2. Gerenciamento de Memória

Responsável por registrar onde cada programa está carregado e por traduzir endereços lógicos (usados pelo programa) em endereços físicos (na RAM).

2.1 Endereçamento Lógico × Físico

Endereço lógico = referência relativa ao programa; endereço físico = posição real na memória.

2.2 Técnicas de Alocação

  • Partição Única – um único programa ocupa toda a memória disponível (simples, porém ineficiente).
  • Partição Fixa – memória dividida em partições de tamanho pré‑definido; cada partição recebe um processo.
  • Partição Dinâmica – partições criadas sob demanda, ajustando‑se ao tamanho do processo, reduzindo fragmentação interna.
  • Paginação – memória dividida em páginas de tamanho fixo (ex.: 4 KB) e quadros de mesma dimensão; a Tabela de Páginas relaciona página ↔ quadro, permitindo alocação não contígua e eliminando fragmentação externa.

3. Gerenciamento de Processos

Um processo é a instância em execução de um programa. O SO mantém informações de controle (PCB) e controla seu ciclo de vida.

3.1 Estados de um Processo

  • Executando – processo está na CPU.
  • Pronto – aguardando escalonamento.
  • Esperando – bloqueado por evento externo (ex.: I/O).

3.2 Escalonamento de CPU

  • Não preemptivo – o processo cede a CPU voluntariamente.
  • Preemptivo – o SO interrompe o processo para dar chance a outro.

3.3 Políticas de Escalonamento

  • FCFS (First‑Come‑First‑Served) – ordem de chegada.
  • SJF (Shortest Job First) – processos com menor tempo de serviço são atendidos primeiro.
  • Round‑Robin – cada processo recebe um quantum de tempo (ex.: 50 ms) e volta à fila.

3.4 Métricas

Tempo de retorno (turnaround time) = tempo entre a entrada no estado pronto e a conclusão do processo.

Atividade 3 – Mapa Mental

mindmap root((Sistema Operacional)) sub1(Papel do SO) sub1a(Máquina Estendida) sub1b(Gerenciador de Recursos) sub2(Gerenciamento de Memória) sub2a(Endereçamento Lógico ↔ Físico) sub2b(Partição Única) sub2c(Partição Fixa) sub2d(Partição Dinâmica) sub2e(Paginação) sub3(Gerenciamento de Processos) sub3a(Estados: Executando, Pronto, Esperando) sub3b(Escalonamento) sub3b1(Não Preemptivo) sub3b2(Preemptivo) sub3c(Políticas) sub3c1(FCFS) sub3c2(SJF) sub3c3(Round‑Robin) sub3d(Métrica: Tempo de Retorno)

Questões sobre o assunto

Questão 1 – Qual das opções abaixo descreve corretamente o papel de um Sistema Operacional como “máquina estendida”?
1.50 pontos Média

Resposta correta: B) Fornece uma interface de alto nível para operações de arquivo, como abrir, ler e fechar.

O conceito de “máquina estendida” refere‑se à abstração que o SO oferece ao usuário, permitindo manipular recursos de forma simples, sem conhecer detalhes de hardware.

Questão 2 – Em gerenciamento de memória, qual a principal vantagem da técnica de paginação em relação à partição fixa?
2.50 pontos Difícil

Resposta correta: C) Reduz fragmentação externa.

A paginação permite que as páginas sejam alocadas em quadros dispersos, eliminando os “buracos” que surgem na memória quando usamos partições fixas.

Questão 3 – Considere um sistema com páginas de 4 KB. Um endereço lógico tem número de página 5 e deslocamento 300 bytes. Se a tabela de páginas indica que a página 5 está no quadro 12, qual é o endereço físico correspondente?
2.50 pontos Difícil

Resposta correta: C) 0xC12C

Cálculo: base do quadro = 12 × 4 KB = 12 × 4096 = 49152 = 0xC000. Endereço físico = 0xC000 + 300 = 0xC12C.

Questão 4 – Em um algoritmo Round‑Robin com quantum de 50 ms, processos: P1=120 ms, P2=80 ms, P3=30 ms, P4=170 ms, P5=200 ms. Qual o tempo médio de retorno (turnaround) dos processos?
3.50 pontos Extrema

Resposta correta: C) 404 ms

Simulação RR (quantum = 50 ms) resulta nos tempos de conclusão: P1 = 430 ms, P2 = 310 ms, P3 = 130 ms, P4 = 550 ms, P5 = 600 ms. Média = (430+310+130+550+600)/5 = 404 ms.

Pontuação Total
0.00

Texto original

O texto original pode conter falhas de gramática ou de concordância, isso ocorre porque ele foi obtido por um processo de extração de texto automático.
Texto extraído do video Introdução a Conceitos de Computação - Sistema Operacional (Libras)

Olá, alunas e anunos do curso de Introdução ao Conceito de Computação nesta Visual, eu vou falar de sistema operacional.
Começando pelo papel do sistema operacional, seguido pelo gerenciamento de memória e processo feito por esse sistema.
Bom, sistema operacional é um software de sistema.
Logo, ele é um tipo de programa que gerem sim um sistema computacional e terá de com hardware, ou seja, faz uma conta, uma interface entre o usuário e o sistema computacional.
Bom, só que hoje em dia, esse sistema de computadores tem uma complexidade considerável e em parte, essa complexidade é causada pela necessidade de você gerenciar diversos dispositivos.
Assim, podemos pensar no sistema operacional com um software de sistema que gerem sim recursos computacionais que fornece uma interface para a interação com tal sistema.
Por exemplo, as temas aqui, o aplicativo de seu banco, o seu navegador e o site onde você costuma comprar passagem à área.
Você quer fazer essa busca, você quer, por exemplo, imprimir a passagem que é o meu estíritis que você comprou.
Para isso, então, você vai ter agir com o programa de sistemas, como é o caso dos computadores e ter produtadores, que do sistema operacional.
Isso vai permitir com que você consiga conversar com a máquina, entendo os linguagens de máquina, acessar os recursos da CPU e os dispositivos disponíveis para você fazer o que você deseja.
Dessa forma, nós temos dois papas principais para o sistema operacional, que podem ser, nesse sistema pode ser visto como uma máquina estendida uma visão tapudal ou o gerenciador de recursos, botam up.
O que seria isso? Enquanto a máquina estendida, ele vai viabilizar tarefas de baixo nível para o usuário.
Por exemplo, o usuário quer ler, escrever, fechar um arquivo, mas ele não está interessado.
Ele quer ter essa visão alto nível, essa visão abstrata e simples para executar essas operações.
Agora, ele não quer o nível de detalhes, que é onde está o S.
O.
A respeito do indireço de bloco acelido, do número de setores por trídeas, sendo acessado no disco ou modo de gravação.
Ele não tem interesse nessa parte.
Bom, o outro papel seria o gerenciador de recursos.
Então, o sistema operacional vai gerenciar dispositivos que compõem computador.
Então, se você tiver, por exemplo, dois processos disputando o uso da impressora, quer enfiquerem fazer uma impressão, o S.
O.
vai definir quem vai utilizar aquele recurso, em qual ordem.
Sem que você fique sabendo, o mesmo vale para acessos ou discurismo, acessos à memória.
Então, o S.
O.
ele acaba executando a função de coordenar essa localção controlada e ordenada dos recursos.
Bom, o programa em execução, ele reside em memória principal e suas instruções.
Eles são processados uma coisa a outra, como nós vimos na última aula através do ciclo.
Busca de codificação e execução.
Isso aqui, na verdade, nós podemos ter vários programas em memória.
Então, temos o conceito da multiprogramação, que é a técnica de manter múltiplos programas em memória principal ao mesmo tempo, competindo pelo uso da SAPU.
Nesse ponto, está a importante o gerenciamento de memória como o ato de manter registro de com e onde os programas são carregados em memória principal.
Lesta forma, o sistema opressional deve efetar um gerenciamento de memória que mantém um registro de quais programas estão em memória e onde memória eles residem.
Alguns conceitos devem também ficar clara com o processo, se refere à representação dinâmica de um programa durante execução.
O gerenciamento de processo vai ser então o ato de manter registro de informação para processos que estão ativos.
Já um escalonamento de SAPU é o ato de determinar qual processo de memória terá acesso a SAPU de modo que possa ser executado.
Com isso, sim, então nós temos que um outro conceito interessante que é o tempo compartilhado, porque você vai ter uma disputa.
E a ideia do tempo compartilhado é que você tem um sistema no qual o tempo de SAPU é compartilhado entre múltiplos usuários terativos ao mesmo tempo.
Então, essa disputa é feita, mas o tempo compartilhado da impressão que o uso, aquela sendo uso simultânea e aí nós temos a ilusão, que é bem representada no conceito de uma máquina virtual, a ilusão criada por um sistema de tempo compartilhado, de que cada usuário possui uma máquina dedicada a ele.
Bom, especificamente agora no gerenciamento de memória, nós temos que lembramos que nós devemos registrar onde como um programa reside em memória e converter indereços lógicos que estão desses programas e indereços reais de memória, nós vamos ter que lidar com isso.
Então, nós temos que responder uma pergunta, nós sabemos onde exatamente o programa será a carreira de memória principal, como então vamos poder saber qual é o endereço usar para alguma coisa, fazer alguma coisa.
Então temos o conceito do endereço lógico e o endereço físico para nos ajudar a isso, o endereço lógico nos ajudar nisso, o endereço lógico, ele faz uma referência a um valor armazenado, relativo ao programa que faz a referência.
Já o endereço físico, o endereço real no dispositivo de memória principal.
Assim, nós vamos ter que fazer uma ligação entre essa referência e se indereço lógico e o endereço real, o endereço físico.
Essa ligação de endereço vai ser um apiamento de endereço lógico e um endereço físico.
Para poder nos trair, vamos começar para uma técnica bem simples, que é a técnica de gerenciamento de memória contigo a única.
Então, nesse caso, nós temos um programa apenas carregado em um área contigo de memória.
Então, parte da memória ocupada pelo sistema operacional e o restante fica disponível para o nosso programa.
Observe que, nesse caso, você pode ter uma área disponível para o programa muito maior do que de fato ele vai usar.
O que, então, a gente estaria não fazendo um bom uso da memória ao não permitir que outros processos outros programas podessem estar utilizando também, já que temos um único programa.
Por outro lado, é um gerenciamento fácil de você implementar.
Bom, então, nesse caso, nós sabemos, nós vamos ter uma noção de onde esse programa aplicativo começa, antes que ele inicia.
E o meu endereço lógico, ele vai ser usado para ser somado a esse endereço, esse ponto de partida, né, nessa posição inicial do meu programa, para eu descobrir o endereço exato onde está o conteúdo que eu quero acessar desse programa.
Bom, só que a nossa ideia é ter vários programas e aí temos o gerenciamento de memória que é particionado onde você tem mais de um programa aplicativo e memória, ao mesmo tempo, fazendo o uso do espaço e memória e tempo de CPU.
E aí, dois tipos, a partição fixa, nesse caso, de partição fixa, elas não precisam ter o mesmo tamanho, mas os tamanhos delas já são fixados quando o sistema operacional é inciadizado.
A memória é dividida em número específico de partições nas quais os programas são carregados.
A técnica de partição dinâmica, na técnica de partição dinâmica, a memória é dividida em partições necessárias para acomodar programas.
Então, nesse caso, na memória principal, eles estão, como estão inicialmente, fazia.
E a medida que programas são carregados, os espaços disponíveis é fateado, usando apenas o necessário para acomodar o programa que está demandando o uso e deixando outras partições menores vazias para poder acomodar outros programas posteriormente.
Bom, os dois tipos utilizam uma tabela de informação de partição para poder resolver os interessos e descobrir o endereço físico acessado.
Então, essa ligação de endereço é basicamente a mesma nos dois tipos de partições, e um exemplo de forma de se fazer isso é através do registro do base e o registro do diminui-nos.
Então, nesse caso, nós temos aqui o processo 3, mas também já temos processo 1, processo 2 e memória, ainda temos partições vivas e o sistema operacional ocupando uma área aqui.
Bom, então nós vamos ter um endereço no restrador básico, o endereço de início da partição corrente e no registro de inícios, tamanho da partição corrente.
Dessa forma, eu posso usar aquela técnica de somar um endereço lógico ao início do meu processo para obter o endereço da instrução do conteúdo da instrução.
Eu quero acessar.
Claro que nesse caso, eu consigo verificar por essa soma se eu estou violando o tamanho máximo de espaço disponibilizado pro meu processo 3.
Outra técnica é a técnica de memória paginada.
Nesse caso, os processos e edições divididos em páginas de tamanho fixo e carregados em quadro de memória.
O que seria esses quadros? Quadros de tamanho fixo de memória principal, que guarda uma página de processo.
A página tem um tamanho fixo de um processo que é armazenado em quadro de memória.
Então, a tabela, para você poder fazer a ligação localizar quadro, página e obter um endereço resolveu, um endereço físico acessado, você tem a tabela de uma teamento de páginas, que vai ser um registro de relacionamento páginacoado, usado pelo sistema operacional.
Repare que a necessidade dessa tabela e esse tipo de divisão geram uma sobrecarga nos sistemas operacional para manter registro de memória local e para refazer a resolução do endereço.
Só que essa técnica traz mais, desse esforço compensa o benefício dessa técnica, porque ela permite que o processo não mais seja armazenado continuamente em memória.
Você vai poder ter uma divisão disso.
Bom, um exemplo, então nós temos aqui um endereço lógico, N, nesta técnica você decodifica esse endereço lógico em páginas e deslocamento.
E você tem aqui o tamanho do quadro, tamanho da página, e cada quadro tem uma página, você vai ter, então, pela divisão de N, pelo tamanho, um número de páginas, que você tem que andar, então, como se você soubesse, eu tenho que ir 10 páginas para frente e fazer um deslocamento na décima página até x, até a posição x, dá da período de deslocamento.
Então, nesse caso, para ir nos traçar essa ideia, nós temos aqui uma decodificação do endereço lógico em páginal 1 e deslocamento 125, vamos supor uma página, um quadro, com tamanho 124, e aí o que vai acontecer? Nós vamos ter um número da página, descobrir no quadro do processo 1, teremos um quadro, uma tabela para cada processo, então, no caso da processão que estamos considerando aqui, eu vou ter pela página, eu sei que a informação que eu busco estar no quadro 7, com cada quadro vai ter 124 de tamanho, eu vou multiplicar 7 por 124, então, eu tenho a quantidade de bytes que eu vou andar, até, mais um deslocamento dentro da sétima do sétimo 4, então, nesse caso, eu chego com essa conta ao meu endereço físico, dado por 7,293.
Bom, agora falando do gerenciamento de processo, o processo pode ter uma característica de ser orientado a CPU, o chamado CPU Bound, que são processos que utilizam muito processamento, muito de processamento, muito processador, e processos aí o Bound, que são orientados à entrada saída, ou seja, eles executam muitas instruções relativas à escrita e leitura, por exemplo.
E o processo em si pode ter 3 estados, ele pode estar executando, que é quando ele está na CPU, os seus instruções estão sendo processadas naquele ciclo de busco execução, que foi apresentado no optimal.
Só que um evento pode se fazer presente, e aí você transfere esse processo com o estado de esperando, que é quando, por exemplo, o processo, para continuar sendo executado, ele necessita de algum tipo de dado que você vai buscar no disco.
Então, você coloca ele em estado esperando, ele tem parado, aguardando um evento.
Bom, nesse ponto, você fica nesse estado esperando até que o evento ocorra e aí ele enguda, postado pronto, ou seja, ele agora já tem o que ele precisa para continuar sendo executado na CPU, só que a CPU pode estar sendo utilizada por esse processo.
E aí ele vai ficar em estado pronto, aguardando para ser escalonado na CPU.
Então, o evento ocorre e o processo aguada, o escalonamento na CPU.
Bom, o que também pode acontecer, uma vez que a CPU foi liberada, ele vai se executado, mas uma coisa que pode acontecer, é um processo passado, estado executando para pronto, ou seja, suponha que no seu compartilhamento de uso da CPU, você delegou um tempo, esse tempo de uso passou, o processo não demandou nenhuma evento, mas como ele já gastou o tempo dele, ele volta postado pronto.
Pra dar a chance que outro processo também pronto possa ser o espaço a partir de tempo dele de uso da CPU.
Bom, nesse caso, o escalonamento de CPU, ele vai determinar qual processo no estado pronto deve ser movido para o estado executando.
E aí nós temos um processo que pode ser, um escalonamento que pode ser não preenventivo, ou seja, o processo correntemente em execução sede a CPU voluntariamente.
Então, por exemplo, ele precisa de um evento descalhe e aquela CPU está liberada para outro processo.
E, preenventivo, já é uma decisão do sistema operacional de favorecer o outro processo interrumpendo o processo em execução, dá-lhe vezes aquele outro processo, tem algum tipo de prioridade, e aí você interrompte o processo que está em execução e temos um escalonamento preenventivo.
Bom, e aí quando que a gente sabe qualquer melhor forma que os processos estão sendo gerenciados nesse escalonamento, uma métrica para isso é o tempo de retorno, que vai ser o tempo decorrido entre chegada do processo ao estado pronto e sua conclusão final, independente de ser de for, não foi, sofreu interrupção ou sofreu interrupção, a conclusão final dele vai te dar esse tempo de retorno.
Assim nós temos diferentes técnicas para avaliar esse gerenciamento de processo, então uma técnica, a primeira chegar, a primeira tende, então supõe aqui que nós temos cinco processos com essas fatias de tempo, com esses tempos de serviço demandado.
E aí, qual que acontece? Eu simplesmente chegou o processo 1 e ponho ele para executar, chegando o processo 13 ele vai ter que aguardar a passar o tempo de serviço do processo 1 para que eu possa adicionar.
E aí novamente o processo 5 vai ter que ficar esperando a conclusão do processo 3 para poder ser executável.
O mesmo vai valer com o processo 2 que vai ficar guardando a conclusão do processo 5, e o processo 4 vai ter que ficar guardando a conclusão do processo 2 para poder entrar e ter seu tempo de processamento.
Bom, dessa forma, o que vai acontecer? Nós temos um tempo médio de resposta de 338, considerando o tempo de conclusão fazendo a média pelo tempo de conclusão de cada, o tempo de retorno de cada processo.
Supondo que todos os processos chegam a se mutaneamente, eu vou ter uma pega que eu tenho processos que chegaram, que já estão no estado pronta, eu tenho todos esses no estado pronta.
E aí eu vou avaliar eles considerando o menor tempo, primeiro.
Então nesse caso, o primeiro processo 4 ele entra e ocupa por 20, usa o faz tempo de serviço 3.
Em seguida eu vou ter p3, e assim sucessivamente eu vou seguindo a ordem de menor tempo.
Bom, dessa forma, p5 ao penúltimo, p2 é o último a ser executado.
Eu tenho um tempo médio de resposta que já cai para 238, baseado nos tempos de retorno desses processos.
Uma outra técnica é o road robin onde supondo aqui no nosso exemplo, um intervalo de tempo de 50, o que vai acontecer? Eu pego, por exemplo, eu posso até fazer a ordem no meca, p1, p2, p3, na invocada que eu croque p5 e p4.
Então o que vai acontecer nesse caso? O p1 vai ser executado 50 nd de tempo.
Depois ele volta para a fila p2 executado, depois o p3, depois o p4 aqui, ou a certez, p4 aqui, não há nem certa.
Aí o p4 é executado, só que ele é executado e como o tempo dele era curto ele já conclui em 170.
Vamos para o p5 que usa 50 e volta para a fila, retornando os p1.
E nesse retorno do p1 ele é executado por mais 50 o que conclui a certez, ele é concluído em 270.
Aí vamos para p2, p2 utiliza 50 nd de tempo, depois o p3 e agora o p3 também é concluído, porque ele necessita só de 20 nd de tempo para ser concluído.
Então ele tem um tempo de retorno de 30.
Vamos para o p5, novamente o p2, o p5 que agora é concluído e o p2, temos o tempo de conclusão, o tempo de retorno de todos eles, o que dá uma média nesse caso de 382.
Então nesse caso a gente tem que considerar também um intervalo de tempo que está sendo dado aos processos.
Bom pessoal, essa foi a nossa aula de hoje, espero que vocês tenham entendido o papel do sistema operacional e eu tenho a você de passar uma ideia a respeito de como citar o gerenciamento de memória, estratégia de gerenciamento de memória e gerenciamento de processo.
Nos vemos na próxima aula.