Fundamentos de Sistemas Operacionais - Unidade III - Resumo
Por: joe richard • 28/5/2019 • Resenha • 1.103 Palavras (5 Páginas) • 462 Visualizações
Fundamento de S.O.s – Unidade III
5.1 – Intro. a processos
Os sistemas conseguem desenvolver grande variedade de tarefas simultaneamente, mas só notamos essa capacidade extraordinária quando ela falha, sobrecarrega e vemos queda de desempenho;
Um server de arquivos no cérebro dele no momento de pico de uso do sistema, veríamos dezenas, em casos centenas, de usuários fazendo milhares de requisições ao mesmo tempo, o antivírus varrendo tudo, o software de gerenciamento de redes monitorando e diversos discos RAID necessitam processar suas funcionalidades, é necessário que os processos estejam em plena ação;
Em todos os sistemas com “paralelismo” temos a CPU trabalhando algumas dezenas ou centenas de milissegundos numa única aplicação e subsequentemente na próxima até o ciclo se completar, devido a rapidez dos ciclos isso gera a sensação de que o ambiente está atendendo a várias aplicações simultaneamente;
Só em sistemas de múltiplos processadores que temos vários programas atendidos no mesmo instante, controlar várias atividades em paralelo é algo sendo desenvolvido e aprimorado com base no modelo de processos sequenciais.
5.1.1 Processo
O CPU pode executar um processo por vez, mesmo com dois cores (duas CPUs) ainda é o mesmo só um processo por vez;
Processo é uma atividade, possuindo um programa, entrada, saída e um estado;
Processos podem conter mais de uma tarefa, ou seja tarefa e processo são diferentes;
No núcleo de S.O. temos PCBs (Process Control Blocks) que armazena as informações referentes aos processos ativos no ambiente, cada processo tem um identificador único no sistema, o PID – Process IDentifier;
5.1.2 Criação de processos
Processos são criados e destruídos constantemente nos sistemas, essas ops. Disponibilizam aplicações por meio de chamadas de sistema que diferem entre S.O.s;
Para Sistemas de proposito gerais, é preciso algum mecanismo para criar e terminar processos durante a operação quando preciso;
Temos 4 eventos que criam processos: no inicio do sistema, um processo em execução procedendo a uma chamada de sistema de criação de um processo, requisição do usuário e batch job sendo iniciada;
Temos processos de 1º e 2º plano(daemons) estes de 2º não interagem diretamente com o user;
Processos ativos podem fazer system calls para criar novos processos;
Users podem iniciar um processo começando um programa em ambiente GUI ou no Shell;
Em caso de sistemas em lote, encontrados em mainframes, o user, admin ou até um alinhamento prévio pode submeter uma tarefa em lote para o sistemas, o S.O. criara um novo processo e o executara quando tiver recurso disponível e/ou redefinindo prioridades e eecutando o processo no momento determinado;
No Unix temos a chamada fork para criar um processo, ela cria uma replica do processo pai, e depois o filho executa “execve”, ou uma chamada similar pra mudar sua imagem de memoria e executar um novo programa;
No Windows uma chamada denominada CreateProcess de função do Win32 trata o processo de criação e carga do programa correto no novo processo;
Em ambos sistemas o processo pai e filho possuem seus próprios espaços de endereçamento da memoria, permitndo assim que não impacte um ao outro ao alterar palavra no endereçamento;
5.1.3 Término de processos
Quatro condições: normal,por erro, erro fatal e cancelado por terceiros;
No normal que é elo exit no Unix ou ExitProcess no Windows, termina após finalizar as tarefas previstas;
Processos que interagem com outros não concluem quando algum parâmetro errado é fornecido, tipo tentar dar o mesmo nome para dois arquivos, da então saída por erro;
Erro fatal é por erro de programa, por execução de instrução ilegal, referencia a memoria enxistennte ou divisão por 0;
Cancelamento por terceiros, é quando um processo executa uma chamada de sistema para cancelar outro processo, no Linux/unix é o kill e on Windows é TerminateProcess;
5.2 Comunicação entre processos
3 topicos: Como passam informação para ooutro, como garantir múltiplos processos não entrem em conflito e como haverá sequencia adequada quando existirem dependências;
5.2.1 – condição de corrida
Processos podem compartilhar aalgum armazenamento comum e serem capazes de ler e excrever, pode estar na memoria principal ou em arquivo compartilhado;
Como dois processos X e Y que decidem colocar um arquivo ArquivoX e ArquivoY, depois le a variável In do spool e armazena o 1 em sua var vaga_impressão_disponivel, então a CPU troca pra o achando que X já ocupou o tempo necessário, então Y ve o In vago e faz o mesmo que X em sua var, os dois contem a posição 1 indicando a vaga 1 na fila;
...