Conceitos básicos de sistemas operacionais

3.754 visualizações

Publicada em

Conceitos básicos de sistemas operacionais

0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
3.754
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
60
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Conceitos básicos de sistemas operacionais

  1. 1. UNIVERSIDADE FEDERAL DO CEARÁ BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO RONILDO OLIVEIRA DA SILVA SISTEMAS OPERACIONAIS: CONCEITOS BÁSICOS SOBRE SISTEMAS OPERACIONAIS PRFESSOR LUIS RODOLFO REBOUÇAS COUTINHO QUIXADÁ 2014
  2. 2. SUMÁRIO INTRODUÇÃO.......................................................................................................................2 PROCESSOS........................................................................................................................2 ESPAÇOS DE ENDEREÇOS................................................................................................2 SISTEMAS DE ARQUIVOS..................................................................................................3 SISTEMAS DE ENTRADA E SAIDA....................................................................................4 SISTEMAS DE PROTEÇÃO.................................................................................................4 Hardware...........................................................................................................................4 Software.............................................................................................................................4 LINHAS DE COMANDO (SHELL)........................................................................................5 SISTEMAS OPERACIONAIS MONOLITICOS.....................................................................5 SISTEMAS OPERACIONAIS EM CAMADAS......................................................................5 MICROKERNELS..................................................................................................................6 CLIENTE SERVIDOR............................................................................................................6 MÁQUINAS VIRTUAIS..........................................................................................................6 EXOKERNELS......................................................................................................................7 REFERÊNCIAS BIBLIOGRÁFICAS.....................................................................................7
  3. 3. 3 INTRODUÇÃO Um sistema operacional, ou software base é um conjunto de rotinas que desempenham o papel de controle de recursos, como o compartilhamento de memórias, escalonamento de processos, gerência de dispositivos de E/S (entrada e saída), interrupções, etc. Além de se responsabilizar pela gerência, o sistema operacional é também visto como uma camada de abstração entre o computador e o usuário, fornecendo facilidade, e segurança ao se manusear softwares aplicativos. Vejamos alguns conceitos básicos sobre os sistemas operacionais, características, seus subsistemas e mecanismos. PROCESSOS Um processo pode ser entendido como a execução ou parte da execução de um programa. Sabemos que um sistema operacional moderno é multitarefa baseado em ciclos de tempo (clock), ou seja, várias instâncias e processos podem estar aptos a serem executadas em uma pilha de execução na memória principal. Esse espaço na memória reservado para o processo é denominado espaço de endereçamento. O sistema operacional utiliza do clock para controlar de modo periódico e temporal o acesso dos processos ao processador. Um exemplo comum é quando cada processo empilhado tem alguns microssegundos para permanecer em execução. Quando um processo é desempilhado para dar “visibilidade” a outro, ele precisa salvar seu estado (um dos principais serviços do espaço de endereçamento) antes da troca para que se possa continuar quando o mesmo voltar à atividade. É válido considerar também que processos podem ser dependentes de outros, automaticamente podemos enxergar uma hierarquia onde processos raízes podem criar e/ou chamar outros processos nós como uma ramificação. Como dificilmente essas estruturas são lineares, o sistema operacional usa de mecanismos de escalonamento com o objetivo de não deixar o processador ocioso e nem permitir que apenas alguns processos cheguem à execução. ESPAÇOS DE ENDEREÇOS O espaço de endereçamento contém o programa executável, os dados e sua pilha de execução. Cada processo possui um conjunto de registradores, um ponteiro que aponta para a pilha e várias informações necessárias para executar e retomar a execução um programa após uma parada seja ela confirmada ou não.
  4. 4. 4 Todos os sistemas computacionais possuem uma memória principal, e eventualmente, os processos que dão atividade ao sistema são armazenados nesse dispositivo de armazenamento temporário. Quando falamos de processos, citamos os espaços alocados para cada um deles e suas particularidades. Na gerência desses processos, podemos encontrar alguns conflitos como: dois processos acessando o mesmo espaço de memória, ou necessidade de mais espaço ocupado por outras instâncias. Hoje, as memórias principais são de tamanhos elevados, mas se acontecesse de um ou mais processos utilizarem todo o espaço de endereçamento e mais um pouco? Esse problema seria resolvido com o gerenciamento de espaços de endereços por meio do uso de uma Memória Virtual, que é um espaço alocado no disco, de grande capacidade, porém mais lenta. SISTEMAS DE ARQUIVOS Além dos processos, memórias e dispositivos, o sistema operacional também gerencia arquivos. O sistema de arquivos se atrela aos outros vários subsistemas, por exemplo: Quando um arquivo é lido, ele precisa ser inicialmente localizado em uma memória, normalmente na secundária, e para isso, é necessário que o sistema de E/S faça a busca no disco, carregado nos espaço de endereços da memória principal, e assim, ser aberto, editado e salvo novamente no disco. Um pouco diferente do sistema de blocos do disco, o sistema operacional adota uma hierarquia de diretórios para a manipulação mais organizada de arquivos. Esse conceito é bem similar ao visto no tópico de processos, onde um diretório raíz pode possuir vários subdiretórios, e esses subdiretórios serem pais de outros diretórios, um exemplo de árvore. A princípio, um sistema em árvore, é mais lento (por conta das buscas por subdiretórios) que um linear (onde todos os arquivos estão em um único lugar), porém, o sistema operacional usa de um parâmetro denominado path, que é o endereço do arquivo a ser processado, um processo recebe esse parâmetro e não mais precisa efetuar buscas para encontrar sua localização a cada iteração, o que torna o nível de organização, muito superior. Outra vantagem é que ao inserir uma unidade de disco removível, o sistema de arquivos considera e trata esse dispositivo de armazenamento como um diretório, ou seja, a hierarquia e o acesso continuarão sendo o mesmo e pertencerá a mesma árvore de diretórios.
  5. 5. 5 SISTEMAS DE ENTRADA E SAIDA Num sistema computacional, se fossemos resumi-lo, poderíamos dizer que é um sistema com entrada, processamento e saída. Esse é um modelo adotado para simplificar como as operações manipuladas pelo usuário interagem com o sistema operacional e retorna um resultado referente ao processamento dessas instruções. À medida que os sistemas computacionais se tornam mais complexos novos dispositivos vêm surgindo e é de responsabilidade de o sistema operacional gerenciá-los. Todo sistema operacional possui um sistema de E/S. Em um sistema computacional de dispositivos on-board, podemos verificar que alguns ou todos eles possuem uma compatibilidade com o programa de E/S do sistema operacional, ou seja, eles são considerados independentes de dispositivos. Outros, normalmente off-board, se comportam de maneira diferente e necessitam de um programa “tradutor” que abstraia a camada física (dispositivo), e forneça uma boa comunicação com o sistema operacional. Esses softwares são denominados drivers de dispositivos específicos. SISTEMAS DE PROTEÇÃO Vejamos alguns exemplos de artifícios utilizados pelo sistema operacional para evitar acessos indevidos durante o funcionamento de um sistema computacional. Hardware Quem tem prioridade de acesso à memória? Quem pode ser deixado em segundo plano numa chamada de E/S? Essas e outras “perguntas-conflito” podem ser solucionadas pelo fato do sistema operacional trabalhar em modo supervisor, ou seja, o usuário e suas rotinas não podem ter privilégios e acessos superiores às chamadas de sistema ou interrupções de E/S. Se isso ocorresse, o usuário poderia escrever em locais de memória não permitidos ou não existentes, modificaria o temporizador da CPU, etc. Software Qual seria a vantagem de qualquer usuário ter acesso aos arquivos do sistema operacional e acesso aos seus arquivos pessoais? Ambas as perguntas podem ser respondidas com “nenhuma”. Uma modificação de arquivos do sistema pode trazer grandes problemas futuros ou imediatos e seus arquivos pessoais talvez não fossem para serem vistos por qualquer pessoa. Para isso, o sistema operacional toma conta da segurança própria e do seu usuário, foi com esse propósito que nos sistemas Unix, por exemplo, temos um sistema
  6. 6. 6 de segurança baseado em cadeia de bits, denominados bits rwx, onde a cadeia de bits representada por:  R – Permissão de leitura;  W – Permissão de escrita;  X – Permissão de execução; Essas permissões são aplicadas aos níveis de usuário do sistema:  U – Usuários;  G – Grupos;  O – Outros; Exemplo de permissão de arquivo: LINHAS DE COMANDO (SHELL) Figura 1: Arquivo com permissões totais para usuário, permissões negadas para outros, e negação de escrita para grupos. Disponível em: http://pt.wikipedia.org/wiki/Chmod O shell é um software aplicativo responsável pela interpretação de comandos via terminal, em sistemas sem interfaces gráficas, o shell é considerado o meio por onde o usuário escreve instruções (em texto no próprio terminal), que são então interpretadas a cada linha de prompt, e assim é iniciada a execução do processo ou da árvore de processos. Só com a finalização da execução, o shell estará apto novamente para o recebimento de novas instruções. SISTEMAS OPERACIONAIS MONOLITICOS Podemos considera um sistema operacional monolítico como uma aplicação composta por diversos módulos que são compilados separadamente e depois “linkados” de forma que possa interagir livremente uma com as outras constituindo um grande e único programa executável em modo supervisor.
  7. 7. 7 Seu desempenho é bem maior que as demais estruturas de sistemas, porém como são aplicações unidas, uma falha pode paralisar todo o núcleo. Por não possuir separação de funcionalidades, essa liberdade de controle em demasia torna o sistema vulnerável. SISTEMAS OPERACIONAIS EM CAMADAS Essa arquitetura de organização trata os possíveis erros dos sistemas monolíticos, pois define hierarquicamente o sistema operacional em subsistemas sobrepostos, tal quais as camadas do protocolo TCP/IP. Cada módulo oferece um conjunto de funções que pode ser usado por outros módulos de camadas superiores. Fazendo uma analogia a interação usuário-computador, a vantagem da estruturação em camadas é isolar o sistema operacional (núcleo), facilitando sua alteração, depuração, e prevenção. Como são camadas dispostas uma sobre as outras (do menor ao maior nível), os níveis mais internos, por exemplo, os que se comunicam diretamente com o núcleo ou hardware são mais protegidos. MICROKERNELS Assim como os computadores, processadores e quaisquer dispositivos, o kernel também vem aumentando seu desempenho e diminuindo de tamanho. As camadas dos serviços são agora dispostas em processos. Cada processo agora tem a responsabilidade de gerenciar um conjunto específico de funções (em modo usuário, o que previne erros no núcleo) como: gerência de memória, gerência de arquivos, gerência de processos etc. O núcleo que nessa arquitetura é minúsculo, o que torna um mecanismo muito complexo, porém eficiente. Sem esse novo paradigma, o kernel fornecia o controle e a abstração de camadas mais baixas do sistema operacional. Como microkernel, apenas gerencia a comunicação entre esses processos específicos como sua principal função. CLIENTE SERVIDOR Constituidora da parte da arquitetura de microkernels, o modelo Cliente Servidor é bem similar ao detalhado anteriormente. Alguns processos denominados servidores, recebem as solicitações de serviços (leitura e/ou escrita de bloco, por exemplo) enviadas pelos processos clientes (ambos, processos no microkernel).
  8. 8. 8 Como o kernel é muito pequeno e mais livre de códigos e operações de núcleo, a sua funcionalidade se resume em coordenar a comunicação coerente entres os processos clientes e servidores. MÁQUINAS VIRTUAIS Um exemplo de máquina virtual bastante utilizada é a Java Virtual Machine, criada pela Sun Microsystems, que objetivava o suporte a linguagem Java. Quando se executa um código Java, o interpretador da máquina virtual se encarrega de gerar os próprios bytecodes, que são cadeias de bytes próprios do Java. Uma das vantagens de utilizar uma máquina virtual, é que será gerado o mesmo bytecode, o que torna a aplicação em Java altamente portátil. Como é dependente de uma máquina virtual, o desempenho da aplicação é considerada visivelmente inferior a um código compilado em uma máquina real. EXOKERNELS É um caso especial de microkernel, com menos mecanismos em modo supervisor, ou seja, ainda beneficiados pelos acessos em modo usuário, os processos em modo de exokernel podem ter acesso ao hardware mais diretamente ao invés de ter de obter confirmações de biblioteca ou de núcleo. REFERÊNCIAS BIBLIOGRÁFICAS MACHADO, F. B. Maia, L. P. Arquitetura de Sistemas Operacionais. 3. Ed. LTC. 2002. TANENBAUM, Andrew S. Sistemas Operacionais Modernos. 2. Ed. Prentice Hall (Pearson), 2003.

×