Aula 00 PARTE 1 - Sistemas Operacionais Fundamentos ; gestão de processos, gestão de memória e estão de entrada e saída Flashcards
O que é espaço Kernel?
(Elo do hardware com o software) Trata-se do núcleo do sistema operacional, “quem” tem um controle total de tudo relacionado ao sistema. O kernel é um dos primeiros programas a ser carregado durante a inicialização e assim que começa a ser executado inicia um processo de detecção de todo o
hardware necessário para que ocorra um bom funcionamento do computador
É correto dizer que o kernel opera solicitações de entrada e saída de software? Gerenciando a memória?
Sim
Qual a diferença entre modo Kernel e Modo usuário?
Modo kernel: (modo privilegiado) neste modo uma aplicação pode executar instruções não privilegiadas e privilegiadas, ou seja, instruções que oferecem risco ao sistema, ex.: instruções que acessam dados no disco.
Modo usuário: (Para o usuário não fazer cagada) neste modo uma aplicação só pode executar instruções não privilegiadas (instruções que não oferecem riscos ao sistema).
O que é o powerShell?
É o interpretador de comandos do Windows. É a interface entre o S.O. e o usuário
Na atualidade é muito comum a utilização de GUI (Graphical User Interface), ou seja, o usuário apenas clica em janelas, ícones, entre outros elementos para interagir com o S.O. Mas ainda existe o shell, um processo que lê o teclado e espera por comandos, interpreta-os e passa seus parâmetros ao S.O. Por isso também é conhecido como interpretador de comandos
Quais são os 4 tipos de gerenciamento realizados por um sistema operacional?
Gerenciamento de Processos: (unidade básica de trabalho do sistema operacional), o que inclui a sua criação, sua exclusão e o fornecimento de mecanismos para a sua comunicação e sincronização;
Gerenciamento de Memória: Controla qual parte da memória é usado. Responsável pela alocação dinâmica do seu spaço
Gerenciamento de Dispositivos: Entrada e saídA
Gerenciamento de Armazenamento: Que inclui o fornecimento do sistema de arquivos para\ a representação de arquivos e diretórios e o gerenciamento do espaço em dispositivos de\ armazenamento de dadosHD SSD PEN DRIVE.
O que é a arquitetura Kernel de tipo monolítico?
Monolítico: os controladores de dispositivos e as extensões de núcleo são executadas no espaço de núcleo, com acesso completo ao hardware. Como todos os módulos são executados em um mesmo espaço de endereçamento, se houver ocorrência de erro em um desses espaços, todo o sistema pode ser afetado. Há um único arquivo objeto, sendo que toda rotina fica visível às demais. Há uma chamada de núcleo (chamada de supervisor) para trocar o modo usuário/núcleo.
Alguns exemplos: Linux, BSD e MS-DOS.
O que é a arquitetura Kernel de tipo Microkernel?
Microkernel (micronúcleo): conforme o nome já indica, é um núcleo de tamanho bastante reduzido e, por esse motivo, ele executa o mínimo de processos possível no espaço do Kernel.
Alguns desses processos são executados no espaço do usuário. Com um micronúcleo, se ocorrer um erro, basta reiniciar o serviço que apresentou o problema. Com isso, evita-se que todo o sistema seja derrubado (como ocorre com o Kernel monolítico). Alguns exemplos: AIX, Minix e GNU Hurd.
Atividades são executadas fora do núcleo
O que é a arquitetura Kernel de tipo híbrido?
Híbrido: funciona como um meio-termo, se comparado a sistemas monolíticos e de micronúcleos. O híbrido combina a estabilidade e a segurança do microkernel com o desempenho do monolítico. O kernel híbrido é semelhante a um micronúcleo, mas tem um código (“não essencial”) no espaço do núcleo para que as operações executadas sejam mais rápidas. Alguns exemplos: AmigaOS, Android, Macintosh e Windows.
O exonúcleo proporciona uma interface de baixo nível ao hardware?
Verdadeiro
- Fornecem um clone do computador real para cada usuário, mas é com um subconjunto dos recursos.. Exemplo uma maquina virtual que recebe do disco 0 a 2047 e a outra 2038 a 4095
Pelo fato do exonúcleo proporcionar uma interface de baixo nível ao hardware, carecendo de todas as funções de alto nível dos outros sistemas operacionais, ele é complementado por uma biblioteca de sistema operacional
O que significa multitarefa preemptiva? Lembre-se de uma palavra importante
pseudoparalelismo
Importante ressaltar que essa ilusão de execução simultânea só
ocorre se o sistema for preemptivo (multitarefa preemptiva), ou seja, se tiver a capacidade de interromper a execução de uma tarefa em andamento para que outra tarefa possa fazer uso do processador
Os sistemas monotarefa não permitem a execução de mais de um processo ao mesmo tempo,
portanto não é necessário compartilhar o uso do processador
O que é um daemon?
Um daemon (“serviço”) é um tipo especial de processo executado em segundo plano, geralmente sem interação direta com o usuário. O termo daemon tem origem do sistema operacional Unix e representa processos que são iniciados durante o boot do sistema e continuam a ser executados enquanto o sistema está ativo. Alguns exemplos são o daemon do sistema de impressão (cupsd) e o daemon de agendamento de tarefas (cron).
Programa executado com um processo em plano de fundo (Back ground), em vez de estar sob o controle direto de um usuário
O que ‘Journaling:
Journaling: técnica usada em sistemas de arquivos (gerenciamento de armazenamento) para melhorar a integridade e recuperação de dados em caso de falhas ou interrupções inesperadas. É comum em sistemas de arquivos utilizados por sistemas operacionais modernos. A ideia principal é manter um “jornal” (ou log) que registra as operações que serão realizadas antes de serem efetivamente aplicadas no sistema de arquivos. Isso ajuda a garantir a consistência dos dados em caso de falhas (falta de energia, panes do sistema etc.).
O que é Spool de impressão
SPOOL é uma abreviação de Simultaneous Peripheral Operations On-Line (Operações Periféricas Simultâneas On-line) e geralmente está associado a impressões. O termo “spool de impressão” refere-se a um sistema que permite que vários trabalhos de impressão sejam enviados para uma fila e processados em ordem. A ideia do “spool de impressão” é melhorar a eficiência do processo de impressão, fazendo com que quando um trabalho de impressão é enviado para a fila, ele fique armazenado temporariamente em um local (conhecido como “spool”). Enquanto um trabalho estiver no spool, ele pode ser cancelado, pausado, pode ser dado maior prioridade, entre outras atividades, dependendo do sistema operacional.
Windows e Mac utilizam sistemas monolíticos?
Sim. É a organização mais comum. Há um único arquivo objeto
Toda a rotina fica visível às demais
O que significa “CHAMADAS DE SISTEMA?”
A interface entre o SÓ e os programas de usuário é definida por um conjunto de instruções estendidas disponibilizadas pelo sistema operacional. As chamadas de sistema (system calls) são “instruções estendidas”, abstraindo do programador os detalhes de “baixo nível” e garantindo que o programador não faça alguma “bobagem
A interface entre o sistema operacional e os programas de usuário é definida por um conjunto de instruções estendidas denominadas chamadas de sistema.
V ou F
Verdadeiro
Lembre da imagem
Temos as aplicações dos usuários
Ai temos as chamadas de sistema
Para acessar o espaço do kernel
O início da execução de um programa provocada pelo usuário leva à criação de processos deamons
V ou F?
Falso! O deamon é acionado no boot. Quando inicia o sistema inteiro. E não quando um programa vai ser executado
O sistema operacional atua como alocador e gerenciador dos recursos que um sistema computacional possui, tais como tempo de CPU, espaço de memória e dispositivos de entrada/saída.
V ou F?
Verdadeiro
Gerenciamento de Processos: (unidade básica de trabalho do sistema operacional), o que inclui a sua criação, sua exclusão e o fornecimento de mecanismos para a sua comunicação e sincronização;
Gerenciamento de Memória: Controla qual parte da memória é usado. Responsável pela alocação dinâmica do seu spaço
Gerenciamento de Dispositivos: Entrada e saídA
Gerenciamento de Armazenamento: Que inclui o fornecimento do sistema de arquivos para\ a representação de arquivos e diretórios e o gerenciamento do espaço em dispositivos de\ armazenamento de dadosHD SSD PEN DRIVE.
Podemos falar que o Journaling tem como principal função a de registrar metadados acerca das operações feitas nas estruturas de dados e diretórios do sistema de arquivo
Exatamente isso.
Caiu na questão da FGV
Responda
Um Técnico Judiciário de TI do TRF3, ao estudar os princípios dos sistemas
operacionais, teve sua atenção voltada ao processo que perfaz a interface do usuário com o sistema operacional. Observou que este processo lê o teclado a espera de comandos, interpreta-os e passa seus parâmetros ao sistema operacional. Entendeu, com isto, que serviços como login/logout, manipulação de arquivos e execução de programas são, portanto, solicitados por meio do interpretador de comandos ou
Shell
Podemos falar isso?
O gerenciador de memória é a parte do sistema operacional que gerencia, parcialmente, a hierarquia de memórias.
Podemos.
A figura da hierarquia de memória traz registradores, memória cache, memória principal e memória secundária
Quais são as duas funções principais de um Sistema Operacional?
Apresentar ao usuário uma máquina estendida ou máquina virtual, afinal de contas alguém tem que conversar com o hardware
Gerencia um sistema complexo, processadores, memórias, discos, dispositivos de entradas e saída e arquivos etc.
Julgue
Em ambiente multiprogramação, é necessário que exista uma proteção, por exemplo, contra o acesso de dispositivos de E/S ou a alocação de memória por mais de um programa ao mesmo tempo. Assim, o sistema operacional e os programas de usuários operam em modo privilegiado, o que garante que os conflitos no uso dos recursos não ocorram
Lembre-se dos termos privilegiado e não privilegiado.
Modo kernel: Privilegiado
Modo usuário: Não privilegiado.
‘
Na questão, programas de usuário Não operam em modo privilegiado
Item errado
O que significa o termo troca de contexto quando analisamos os processos em um processador?
É que ele modificou o processo que estava agindo. Se estava no word, foi pro power Point. Houve troca de contexto, também chamado de chaveamento ou mudança de contexto
A inicialização do sistema implica na criação de um processo?
SIM.
Inicialização do sistema
Realização de uma chamada de sistema por um processo em execução para criação de um processo.
Um pedido do usuário (clicar duas vezes no app word)
Início de uma tarefa em lote (Para computadores de grande porte)
Qual a diferença de foreground para backgroud
Processos em primeiro plano (para o usuário ver) e em segundo plano (sem o usuário saber)
Os processos em background que se iniciam no inicio do Sistema operacional são denominados deamon
Um processo SEMPRE terá três aspectos (contexto/espaço).
Quais são?
Contexto de Hardware
Contexto de software
Espaço de endereçamento
Dê um exemplo de CPU-bound e tente explicar o que é
CPU-bound é um filme que fica uma hora rodando
Processos que passam a maior parte computando (CPU-bound) tendem a ir poucas vezes para o estado bloqueado (ou talvez nunca!), pois utilizam muito o processador e quando a fatia de tempo termina vão para o estado “pronto”.
Dê um exemplo de I/O-bound
Chat. Fica aguardando o que você vai apertar no teclado
O que é uma thread
Imagine um editor de texto, que possui inúmeras funcionalidades: contador de palavras, contador de páginas, correção ortográfica instantânea, entre outras.
Cada uma delas geralmente é implementada em uma thread, então a cada digitação elas verificam se a quantidade de palavras aumentou/diminuiu (e atualiza essa informação na tela), se a quantidade de páginas foi alterada, se a palavra digitada está correta (após consultar um arquivo de dicionário), e assim por diante
Lembre-se desta definição para ajudar
Quais são as categorias de algoritmos de escalonamento?
● Lote: geralmente utilizado em computadores de grande porte, sem usuários esperando
uma resposta rápida. São aceitáveis algoritmos não-preemptivos ou algoritmos preemptivos com longos períodos de tempo para cada processo. Isso reduz as trocas de processo, o que melhora o desempenho;
● Interativo: em um ambiente em que os usuários interagem, a preempção é fundamental!
Assim não ocorre uma monopolização da CPU por um processo, negando o processamento a outros. Uso típico em computadores de propósito geral, ex.: PC para jogos, edição de textos, navegação na Internet etc.;
● Tempo real: por incrível que pareça a preempção pode ser desnecessária, pois os
processos sabem que não podem ser executados por longos períodos de tempo. Normalmente os processos realizam suas atividades e são rapidamente bloqueados. Um sistema de tempo real executa apenas o que é necessário, ex.: radar que registra a velocidade do veículo e fotografa se ultrapassar um determinado limite.
Dentro das categorias de algoritmos de escalonamento, temos o Escalonamento em Sistemas de Lote. Ele se subdivide em
First-Come First-Served (FCFS):
Shortest-Job First (SJF)
Shortest Remaining Time Next (SRT)
Explique todos
First-Come First-Served (FCFS): o nome do algoritmo já diz tudo (“O primeiro a chegar é o primeiro a ser atendido”), ou seja, os processos recebem tempo de CPU na ordem em que solicitam. Basicamente há uma fila única e os processos vão “entrando” nela, os processos prontos são executados na ordem da fila e quando um processo é bloqueado (aguardando uma entrada, por exemplo), ele retorna para o fim da fila quando estiver pronto novamente. Ok, mas se um processo começar a ser executado, nunca for bloqueado e tiver uma estimativa de execução de 4h, ele monopolizará o processador esse tempo todo? Isso mesmo! Esse algoritmo é do tipo não-preemptivo, uma característica de sistemas de lote.
Shortest-Job First (SJF) (“Tarefa mais curta primeiro”): algoritmo não-preemptivo que presume que os tempos de execução são conhecidos previamente. Imagine uma situação em que os jobs (tarefas) de uma empresa são executados há muitos anos e já se sabe que os jobs do tipo A levam 2 minutos, do tipo B 6 minutos e do tipo C 4 minutos. Os jobs são agendados à tarde para serem executados às 8h do dia seguinte. Vamos ver como ficaria o escalonamento para a execução no dia seguinte dos jobs que foram adicionados na ordem B1, A1, C1, A2 e C2:
Shortest Remaining Time Next (SRT) (“Menor tempo de execução restante”): versão preemptiva do algoritmo SJF. Nesse algoritmo, o escalonador sempre escolhe o job com tempo de execução mais curto (obviamente o tempo precisa ser conhecido previamente). Quando um novo job chega, seu tempo é comparado com o que falta para concluir o job corrente. Se o novo precisar de menos tempo, o processo corrente é suspenso e o novo é iniciado. Esse esquema permite que jobs novos curtos tenham prioridade.
Dentro das categorias de algoritmos de escalonamento, temos o Escalonamento em Sistemas Interativos. Ele se subdivide em
Round-robin: É O MAIS COBRADO
trata-se do algoritmo mais conhecido e cobrado! Com ele é realizado um rodízio entre os processos, sendo que a cada processo é atribuído um intervalo de tempo (quantum), durante o qual ele pode ser executado. Se ao final do quantum o processo ainda estiver em execução é realizada a preempção da CPU e esta é alocada a um outro processo. Obviamente que se o processo tiver terminado antes do fim do quantum ou se tiver sido bloqueado, a troca da CPU é realizada neste momento.
Escalonamento por prioridade:
Escalonamento por múltiplas filas
Escalonamento garantido
Escalonamento por sorteio:
O que é Deadlock (Impasse)?
Um deadlock (impasse) ocorre quando um conjunto de processos está esperando por um evento
que só pode ser causado por outro processo do conjunto. Ou seja, ficam todos “amarrados” em
um “abraço da morte”, sem poder continuar seus processamentos. Alguns exemplos de recursos
que só podem ser utilizados por um processo por vez: unidades de fita e impressoras. Ou você
acha que é possível dois processos escrevendo em uma fita ou mandando imprimir ao mesmo
tempo? Ficaria uma bagunça!
O que são semáforos?
é um tipo de variável que pode ser verificada e alterada em instruções atômicas, ou seja, sem possibilidades de interrupções. Esse tipo de variável é empregado em tarefas como o compartilhamento de recursos entre processos.
É uma variável do tipo inteiro que possui o valor 0 quando não tem nenhum sinal a despertar, ou um valor positivo quando um ou mais sinais para despertar estiverem pendentes (usamos o termo “despertar”, pois um fluxo de execução é “colocado para dormir” quando tenta entrar em uma região crítica que já está ocupada).
O que são instruções atômicas?
sem possibilidades de interrupções
O que é um processo do tipo cpu-bound
Um processo CPU-bound é aquele que usa muito o processador, ou seja, raramente é
bloqueado. Por isso os demais devem esperar acabar seu ciclo de uso do processador (quantum)
Shortest-Job First (SJF) é preemptive?
ou conhecido como SPF (shortest process first)
não!
O QUE É Bloco de Controle do
Processo (PCB - Proccess Control Block).
Este item a seguir está verdadeiro pelo conceito correto:
No sistema operacional, o bloco de controle de processo (BCP) representa e guarda informações associadas a um processo, como, por exemplo, o seu estado pronto ou em execução.
Teoria: Apresenta a estrutura de dados responsável por habilitar o sistema operacional a localizar e acessar rapidamente o bloco de controle de processo (PCB) de um processo.
Existe uma estrutura de dados no núcleo do sistema operacional que serve para armazenar a informação necessária para tratar um determinado processo. Trata-se do Bloco de Controle do Processo (PCB - Proccess Control Block). Como o PCB possui informações críticas do processo ele deve ficar armazenado em uma área da memória protegida do acesso de usuários. Geralmente as informações contidas em um PCB incluem:
● Identificador do processo (PID);
● Registradores da CPU;
● O espaço de endereçamento do processo;
● Prioridade do processo;
● Entre outras.
E a estrutura de dados responsável por habilitar o sistema operacional a localizar e acessar rapidamente o bloco de controle de processo (PCB) de um processo é denominada Tabela de Processo.
O que é Tabela de processos?
a estrutura de dados responsável por habilitar o sistema operacional a localizar e acessar rapidamente o bloco de controle de processo (PCB) de um processo é denominada Tabela de Processo.
(CEBRASPE/STJ/2018) Em relação aos fundamentos de sistema operacional, julgue o item a seguir.
Um processo existente no sistema operacional pode ter um número zero de processos-pai.
Essa foi de fuder
O único processo que pode ter número zero de processos pai é o init, do Linux, ou um
equivalente, em outro sistema. Como ele é o processo “inicial”, ele é pai, mas não possui pai!
Gabarito: Certo
Uma das causas de deadlocks em sistemas operacionais é a disputa por recursos do sistema que podem ser usados apenas por um processo de cada vez. Certo ou Errado?
Essa é a primeira das quatro condições, a condição de exclusão mútua, a qual define que cada
recurso ou está correntemente atribuído a exatamente um processo ou está disponível.
Gabarito: Certo
(CEBRASPE/SLU-DF/2019) Em relação aos microcomputadores, julgue o item a seguir.
Uma das características dos sistemas preemptivos é o fato de eles serem monotarefa.
Errado. Preemptivo é exatamente ser multitarefa.
Cuidado que na prática ele somente faz uma coisa de cada vez. Mas aparenta fazer mais de uma
O SPF (shortest process first), também chamado de Shortest-Job First (SJF) é considerado preemptivo ou não preemptivo?
algoritmo não-preemptivo, presume que os tempos de execução sejam conhecidos previamente
O escalonador seleciona o processo que estiver à espera e possuir o menor tempo de execução estimado e o coloca em execução até a sua conclusão.