Resumo - Conceitos de sistemas operacionais PDF

Title Resumo - Conceitos de sistemas operacionais
Course Conceitos de Sistemas Operacionais
Institution Universidade do Vale do Rio dos Sinos
Pages 13
File Size 399 KB
File Type PDF
Total Downloads 22
Total Views 148

Summary

Overview da cadeira de Conceitos de sistemas operacionais...


Description

Sistemas operacionais Um sistema operacional é um software que é executado entre o hardware e as aplicações efetuadas pelo usuário. É considerado um software de baixo nível por ter acesso direto e completo a todos os recursos disponíveis pelo equipamento, enquanto que as aplicações são consideradas de alto nível pois não podem acessar o hardware diretamente. Resumidamente, o sistema operacional atua como um intermediário entre a camada física do computador (hardware) e os aplicativos instalados pelos usuários.

Funcionalidades básicas de um sistema operacional  Gerência do processador: distribuir o tempo do processador entre os diversos processos em execução. Esta distribuição não é igualitária, pois alguns processos possuem prioridades de execução diferentes, fazendo com que um processo receba uma fatia maior de tempo da CPU. A gerência do processador também cuida da sincronização dos processos, evitando situações de disputas por recursos e a comunicação entre os processos para troca de dados.  Gerência da memória: para cada processo deve ser provida uma região de memória própria, autônoma e independente, gerando uma estabilidade no sistema como um todo, porque processos não possam interferir em outros. Atua na alocação de memória aos processos, à medida que um processo executa sua demanda por memória pode ser alterada, fazendo com que novas porções de memória estejam livres. Caso a memória RAM não seja suficiente, o sistema operacional poderá utilizar da memória virtual.  Gerência de E/S: Cada dispositivo de E/S (periférico) possui características bem particulares no que diz respeito a forma como deve ser acessado. Mesmo assim, podem haver várias questões em comum, como suporte a operações de leitura e escrita, conforme o driver do dispositivo. Em geral, o papel do gerente de E/S é implementar a comunicação com cada dispositivo através destes drivers de dispositivo.  Sistema de arquivos: trabalha em conjunto com o gerente de E/S e tem como meta possibilitar a criação e o manuseio de arquivos e diretórios, definindo uma interface única de acesso, além de definir a forma como os arquivos e diretórios são organizados no dispositivo de memória de massa.  Gerência de segurança: protege os recursos do sistema contra acessos maliciosos e indevidos, através de mecanismos do SO que permitem saber quais usuários estão conectados, o que cada um pode acessar e de que modo isto pode ocorrer, além do histórico de ações efetuadas.

Estrutura do sistema operacional  Núcleo (kernel): principal módulo do sistema operacional, pois é responsável pela gerência dos recursos do hardware utilizados pelos programas. Normalmente estão implementadas as rotinas responsáveis pela gerência do processador, pela gerência de memória, controle de acessos, etc.  Drivers de dispositivos: controlam e viabilizam o acesso aos dispositivos físicos, onde tipicamente há um driver para cada tipo de dispositivo, desenvolvido pelo fabricante do hardware.  Bibliotecas do sistema: compostas por conjuntos de rotinas pré-compiladas e que podem ser usadas por programas desenvolvidos pelos usuários.  Shell (interpretador de comandos): através deste software o usuário pode enviar comandos para o sistema operacional. Ele analisa aquilo que foi digitado e em função disso executa alguma ação específica. Em SOs modernos, tais ações são efetuadas pelo mouse.  Programas utilitários: facilitam a execução de atividades rotineiras, além de implementarem diversas funcionalidades de administração do sistema.

Principais arquiteturas de sistemas operacionais  Arquitetura monolítica: nesta arquitetura, os componentes do núcleo podem se intercomunicar sem nenhum tipo de barreira, todos os elementos do kernel tem acesso irrestrito a todos os recursos oferecidos pelo hardware. A principal vantagem é o baixo custo de execução, proporcionando um bom desempenho. No entanto, estes sistemas apresentam falta de estabilidade devido a intercomunicação livre (se um componente falhar, todos os outros falham) e complexidade em seu desenvolvimento.  Arquitetura em camadas: um sistema operacional pode fazer uso de uma estrutura em camadas para resolver questões do sistema anterior. O nível mais baixo lida com a interface com o hardware, as intermediarias fornecem serviço de gerência e a camada superior possui as definições das interfaces para as aplicações. Neste sistema há a desvantagem de requisições de processos demorarem mais tempo para chegar até dispositivos periféricos ou outros recursos.  Arquitetura de micronúcleo: mantem no núcleo somente o código de baixo nível necessário para a interação com os dispositivos e mantem o código de alto nível, onde estão implementados os gerentes de recurso, fora do kernel, como se fossem processos que se comunicam utilizando as primitivas fornecidas pelo kernel.

História Na década de 40, um programa rodava sozinha e possuía acesso completo a todas as funções do computador. O acesso a periféricos também era programado e executado, mas mais tarde todos estes códigos foram compilados e criadas bibliotecas, para uso comum. Com o advento da computação pessoal no fim da década de 70, os sistemas operacionais foram adaptados para serem executados em arquiteturas com hardware bastante simples, como computadores pessoais.

Sistemas operativos  Primeira geração: surgimento das válvulas e painéis. Na época, existiam apenas um grupo de pessoas que eram responsáveis pelo projeto, construção e programação de cada máquina. A programação era realizada em código absoluto, normalmente através da fiação para controlar as funções básicas. A utilização do computador era realizada através de reserva antecipada. Assim, o usuário realizava a sua própria programação nos painéis e controlando para que nenhuma válvula queimasse. Os programas de computador eram baseados em cálculos matemáticos. Posteriormente, foram criados os cartões perfurados que substituíram a programação através dos painéis.  Segunda geração: surgimento dos transistores. Nesta época, os computadores se tornaram seguros para comercialização. Foi encontrada uma solução para o baixo tempo de vida do computador, chamado batch, que coletava na recepção de um conjunto de Jobs e fazia a sua leitura para uma fita magnética. Foram usados principalmente para realização de cálculos científicos e de engenharia. A linguagem utilizada era a FORTRAN.  Terceira geração: foram lançadas a técnicas de multiprogramação, spool e time-sharing. A multiprogramação dividia a memória em diversas partes, para que cada atividade ficasse alocada em uma dessas partes, diminuindo o tempo de espera entre uma execução e outra. Já o Spool lia Jobs de cartão perfurado direto para o disco. Quando um job terminasse, um novo job era carregado na partição livre de memória. Por fim, o time-sharing permitia uma variação dos sistemas operacionais, onde cada usuário tinha um terminal individual.  Quarta geração: surgimento de chips com milhares de transistores encapsulados. A ideia de computador pessoal estava mais robusta, usualmente conectadas a uma rede publica ou privada, permitindo a troca de informação entre máquinas conectadas entre si. Aumentou o número de softwares desenvolvidos, voltados para usuários leigos. Surgiram também os sistemas operacionais para redes e sistemas operacionais distribuídos.

Memória Em sistemas operacionais antigos, somente um processo por vez poderia residir na memória. Agora, vários programas podem residir na memória principal simultaneamente, cujo acesso deve ser monitorado por mecanismos

implementados no SO, impedindo que um processo possa modificar conteúdo de posições de memória de outro processo, por exemplo. A alocação de memória é de responsabilidade do SO, tais como quanto de memória cada processo ganhará e onde estes processos serão alocados. Um mecanismo implementado por quase todos os SOs modernos é o de memória virtual, que permite que parte da memória secundária possa ser usada como extensão da memória principal.

Arquivos A persistência dos dados é obtida através do armazenamento dos dados (e programas) em dispositivos de armazenamento secundário. O SO oferece uma interface amigável para a organização dos dados, nomeados e acessados nos dispositivos de memória. O conceito de arquivo é resultado do mapeamento de um conjunto de dados (que pode ser um programa) para esta unidade de armazenamento secundário. O conjunto de rotinas que oferece estas funcionalidades chama-se sistema de arquivos (ex.: NTFS). A organização dos arquivos é alcançada através da implementação no dispositivo de massa, por parte do sistema de arquivos, de uma árvore de diretórios permitindo uma hierarquia destes dados. A rotina de um sistema de arquivos permite: criar/apagar arquivos; criar/apagar diretórios; permitir a manipulação de arquivos e diretórios; permitir mapear arquivos em armazenamento secundário e oferecer rotinas para backup e manutenção do volume.

Máquina virtual É utilizada uma cópia fiel do hardware de tal modo que se possa ter um ambiente completo para execução do programa, podendo ser executado mais de uma máquina virtual em um mesmo hardware.

Processos Um processo é um programa em execução, constituído por diversos elementos (código, dados utilizados, pilha de execução, valor dos registradores, manipuladores de arquivos abertos, etc.). O SO mantém internamente uma tabela dos processos em execução, o que permite que o núcleo do SO possa empregar políticas de escalonamento de processos para que possam compartilhar da mesma CPU, dando a ilusão de que estão sendo executados simultaneamente. Um processo pode criar mais processos, chamados de processos filhos, que também podem criar processos filhos e assim sucessivamente. Outro aspecto importante é a capacidade de os processos trocarem informações entre si. Quando estão sendo executados, dois ou mais processos podem tentar disputar o acesso a um mesmo recurso, o que pode levar a impasses que comprometem a estabilidade do sistema como um todo. O SO deve implementar mecanismos de controle de acesso e recursos que impeçam e resolvam este tipo de situação.

Gerência de processos É responsabilidade do SO executar da melhor forma possível todos os processos iniciados pelo usuário, objetivando melhor uso do processador e da memória. Os primeiros SOs executavam apenas um processo por vez (sistema mono-tarefa). Um exemplo deste é o MS-DOS. Sistemas que suportam a execução de mais de um processo concorrentemente são denominados multitarefa. Esta característica implica na implementação de diversos mecanismos como um escalonador de processos e gerência de memória. Num sistema multitarefa deve ser possível permitir o processador suspender a execução de um processo para passar a executar um outro processo. Além disso deve ser possível para o kernel reativar um processo suspenso, a partir do ponto onde foi interrompido.

Os sistemas operacionais modernos associam uma tarefa a cada processo, o que corresponde à execução de um programa sequencial, ou seja, um fluxo único de instruções dentro do processo. Desta forma o processo deve ser encarado como um repositório de recursos empregados por uma ou mais tarefas para sua execução. Cada fluxo de execução do sistema, no interior do kernel ou associado a um processo é denominado thread. Threads executando dentro de um processo são chamados de threads de usuário (user-level threads) enquanto que threads gerenciados pelo kernel são denominadas de threads de núcleo (kernel-level threads). Preempção é a capacidade do SO interromper um processo em execução e substituí-lo por um outro.

Estados de um processo  Novo: o processo está sendo criado; a sua estrutura na memória está sendo montada.  Pronto: o processo está na memória pronto para ser executado, esperando a disponibilidade do processo. Estes são gerenciados em forma de fila por um algoritmo de escalonamento.  Executando: a CPU está executando o processo.  Bloqueado ou suspenso: o processo não pode ser executado porque depende de dados ainda indisponíveis.  Terminado: a execução do processo foi encerrada e será removido da memória.

Escalonamento de processos Este componente decide a ordem de execução dos processos prontos. Os principais fatores que são levados em consideração são: percentual de utilização do processador, throughput (quantidades de processos completados por unidade de tempo), turnaround (tempo total de execução de um processo), tempo de espera de um processo na fila de execução e tempo de resposta. Os processos são escalonados quando um novo processo é criado; no término de um processo; quando um processo é bloqueado e quando um processo executa o evento E/S. O escalonador de um sistema operacional pode ser preemptivo ou não-preemptivo. Num escalonador preemptivo um processo pode perder o processador caso termine seu quantum (sua fatia) de tempo. Num escalonador não-preemptivo, o processo executado permanece com a CPU enquanto precisar, sem ser interrompido. Os principais algoritmos de escalonamento de processo são:  FCFS: atende os processos em sequência, à medida em que são finalizados.  SJF: gera os menores tempos médios de execução e de espera; atribui à CPU a menor tarefa da fila de processos prontos. Como o calculo de tempo médio de um processo é complexo, este método é pouco usado.  Escalonamento com prioridade: cada processo é associado a uma prioridade. Os valores gerados são utilizados para indicar a sequencia dos processos a receber a CPU.

Mecanismos de comunicação inter-processos  Compartilhamento de memória: dois ou mais processos podem compartilhar da mesma variável.  Mail boxes: processos depositam e retiram mensagens de um determinado tipo de dados.  Passagem de mensagens.  Chamada remota de procedures.

Condições de disputa É o momento em que dois ou mais processos tentam acessar simultaneamente um recurso comum. Quando processos interagem entre si, é necessária a existência de mecanismos de sincronização para garantir a coerência do sistema. Tipos de condições de sincronização:  Exclusão mútua: dois processos que tem acesso a um mesmo recurso não devem acessá-lo simultaneamente.  Ocorrência de um evento: processo só continua sua execução após um determinado evento ocorrer.

Principais mecanismos de sincronização Semáforo: Para controlar exclusão mútua e fazer o aviso de ocorrência de eventos. É um tipo de dado com duas operações associadas (wait e signal). Variáveis do tipo semáforo só podem assumir valores inteiros não negativos. Se um processo, por erro de programação, deixar de enviar um signal em um local apropriado, pode acarretar em um deadlock nos processos (um processo esperando indefinidamente um recurso que outro processo nunca vai liberar). Monitores: Um monitor engloba em uma única unidade de programação todos os subprogramas que manipulam um recurso compartilhado. Os subprogramas de um monitor podem ser acessados por qualquer processo. Entretanto, se um processo estiver usando algum subprograma do monitor, nenhum outro processo terá acesso ao monitor, ficando suspenso até que o subprograma que estiver sendo usado termine. Rendezvous: Mecanismo implementado em ADA onde dois processos (usuário e o servidor) se encontram num determinado instante. Se o processo usuário solicitar um serviço antes do servidor aceitá-lo, o processo usuário fica suspenso até que ocorra o Rendezvous. Se o servidor executar um accept antes do serviço ser solicitado, este é que fica aguardando o Rendezvous. Os processos usuários devem conhecer os nomes dos serviços (entries) dos servidores. Os servidores aceitam chamadas de qualquer processo usuário. Rendezvous garante exclusão mútua: só um processo usuário executa um Rendezvous com o processo servidor. Deadlocks Termo empregado para traduzir um problema que ocorre quando um grupo ou conjunto de processos compete entre si. Um programa fica aguardando o outro e gera em uma parada no sistema. Normalmente esta situação ocorre para recursos como dispositivos, arquivos, memória, etc. Esta situação ocorre também em banco de dados.

Condições para ocorrência do deadlock Não-preempção: recursos já alocados a outros processos não podem ser tomados à força. Eles precisam ser liberados exclusivamente pelo processo em utilização. Exclusão mútua: cada recurso ou está alocado a exatamente um processo ou está disponível. Posse-e-espera: cada processo pode solicitar um recurso, ter o mesmo alocado para si e ficar bloqueado esperando por um outro recurso. Espera circular: deve existir uma cadeia circular de dois ou mais processos, cada um dos quais esperando por um recurso que está com o próximo membro da cadeia.

Gerência de entrada e saída Os dispositivos de entrada permitem ao computador acessar informações externas que são codificadas para poderem ser processadas pela CPU. Uma das responsabilidades do sistema operacional é de gerenciar o acesso aos

periféricos por parte de processos que estão sendo executados no computador. Isto é obtido através de um conjunto de rotinas e métodos de acesso implementados e oferecidos pelo SO. Um periférico é um elemento de hardware conectado através de um barramento de E/S ao computador. O barramento permite que dados possam trafegar entre o computador e o periférico. Foram desenvolvidas diversas formas para que periféricos se comuniquem com o computador, portanto diferentes métodos de comunicação são empregados. Os elementos mais importantes entre essa comunicação são a interface de comunicação e o controlador do dispositivo:  Interface de comunicação: é a parte do periférico que se conecta diretamente ao barramento de E/S. A comunicação com o controlador se dá através de um conjunto de registradores (espaços de memória) que armazenam informações enviadas de/para a CPU. Existem dois tipos de interface: 

Serial: trabalha somente com uma linha de transmissão da informação, sendo que o dado é transmitido sempre um bit por vez.



o Paralela: possui várias linhas de transmissão, possibilitando que vários bits sejam transmitidos simultaneamente.

 Controlador: processador especializado no controle do dispositivo específico. O acesso aos registros do controlador pode-se dar por meio de duas formas: 

Mapeada em espaços de E/S: a CPU emprega instruções especiais para manipular os registradores dos periféricos. Existem dois espações de endereçamento: o espaço que corresponde à memória principal e o espaço de E/S que corresponde aos registradores dos dispositivos.



Mapeada em memória: só há um espaço de endereçamento, sendo que alguns endereços específicos irão corresponder a registradores dos periféricos.

Existem três maneiras de a comunicação ser implementada entre a CPU e os dispositivos, sem importar o tipo de mapeamento empregado:  E/S programada: toda troca de dados é de responsabilidade do processo, devendo, portanto, ser implementada pelo programador, de modo que o programa em execução transmita comandos para o dispositivo e em seguida aguarde o termino da operação. Há a desvantagem de o processo ficar esperando muito tempo pelo dispositivo.  Comunicação através de interrupções: interrupções são geradas pelo dispositivo para avisar a CPU que as operações requisitadas foram concluídas. Neste modo, a CPU não necessita monitorar o processo, ficando livre para outras tarefas. Uma interrupção é denominada mascarável quando se trata de uma interrupção de hardware que pode ser ignorada pelo processador; interrupções não-mascaráveis nunca podem ser ignoradas pelo processador e uma interrupção de software é gerada a partir de uma instrução pertencente a um processo.  Acesso direto à memória: a interface do dispositivo consegue transferir os dados diretamente para a memória, não havendo envolvimento direto da CPU. Um dos principais módulos do sistema operacional é o subsistema de E/S, responsável pelo gerenciamento da comunicação com os diversos periféricos conectados ao computador. Este módulo é estruturado em diversas camadas. A camada inferior realiza a interação com o hardware dos dispositivos através dos drivers de dispositivo, empregando mecanismos como interrupções e DMA. Esta organi...


Similar Free PDFs