Você está na página 1de 50

SISTEMAS OPERACIONAIS

AULA – 1 Visão geral sobre sistema operacional: Definições e Conceitos

Instituto Federal do Tocantins – Campus Palmas Prof. Helder Cleber A. Pereira 2011

1

SISTEMAS OPERACIONAIS
Roteiro
INTRODUÇÃO DEFINIÇÕES MODELOS DE SISTEMAS OPERACIONAIS CONCEITOS SOBRE SISTEMAS OPERACIONAIS CHAMADAS DE SISTEMA ESTRUTURA DOS SISTEMAS OPERACIONAIS

IFTO-Palmas Prof. Helder

2

SISTEMAS OPERACIONAIS

INTRODUÇÃO

IFTO-Palmas Prof. Helder

3

Introdução

Um sistema computacional consiste de um ou mais processadores, memória principal, discos, impressoras, teclado, mouse, monitor, interfaces de rede e outros dispositivos de entrada e saída; Dificuldades para o programador: – Complexidade de um programador entender como cada dispositivo funciona detalhadamente; – Complexibilidade de gerenciamento dos diversos dispositivos;

Daí a importância do sistema operacional.

IFTO-Palmas Prof. Helder

4

Introdução

A principal função do sistema operacional é fornecer aos programas do usuário um modelo de computador melhor, abstraindo a complexidade do sistema computacional, tornando a programação mais simples. As formas de interação do usuário com o sistema operacional: – – SHELL (interpretador de comandos); GUI (Graphical user interface);

IFTO-Palmas Prof. Helder

5

Helder 6 .Introdução  Por questões de segurança existem duas formas de interação do usuário/programas com o sistema operacional: – Modo núcleo (modo supervisor) → nesse perfíl existe o acesso completo ao hardware e é possível executar qualquer tipo de procedimento. Modo usuário → nesse perfíl apenas um subconjunto procedimentos estará disponível para os usuários/programas. SHELL ou GUI é o nível mais inferior do software no modo usuário. O programa de interface com o usuário. de –  Em particular. aquelas instruções que afetam o controle da máquina ou realizam E/S são proibidas para programas em modo usuário.  IFTO-Palmas Prof.

Introdução Figura 1 – Onde o sistema operacional se encaixa IFTO-Palmas Prof. Helder 7 .

mas não lhe é permitido escrever seu próprio manipulador de interrupção de relógio. que é parte do sistema operacional e normalmente está protegida pelo hardware contra tentativas de alteração pelo usuário. Helder 8 . que podem não ter um modo núcleo. Esse conceito pode parecer confuso em certos sistemas operacionais.Introdução  Uma distinção entre S.O e software normal (modo usuário): no modo usuário pode trocar ou mesmo reescrever outro software. que usam interpretação. e não hardware.  IFTO-Palmas Prof. para separar os componentes). ou sistemas operacionais interpretados (como sistemas operacionais baseados em java.

ou pelo menos estão intimamente associados a ele. Esses programas não fazem parte do sistema operacional e não é executado em modo núcleo. há programas execudados em modo usuário. outros executados fora do modo núcleo também são inquestionavelmente parte dele. Com isso se torna um pouco confuso a identificação clara se um determinado programa está sendo executado em modo núcleo ou usuário.Introdução  Em muitos sistemas.  IFTO-Palmas Prof. (Ex: programas que permitem o usuário modificarem suas senhas). mas que auxiliam o sistema operacional ou realizam funções privilegiadas. mas realiza uma função claramente dedicada e precisa ser protegida de maneira especial. Tudo que se executa no modo núcleo faz parte do sistema operacional. Helder 9 .

geralmente o proprietário não se dispõe a descartálo e começar um novo. IFTO-Palmas Prof.Introdução  Os sistemas operacionais geralmente possuem vida longa devido aos seguintes fatores: – – São difícies de escrever. Helder 10 . Uma vez escrito.

SISTEMAS OPERACIONAIS DEFINIÇÕES IFTO-Palmas Prof. Helder 11 .

 – IFTO-Palmas Prof. O sistema operacional (objetivo): – Fornecer aos programadores de aplicativos ( e aos programas aplicativos) um conjunto de recursos abstratos e claros em vez de recursos confusos de hardware.Definições  Podemos dizer que sistema operacional é um software que executa em modo núcleo – e mesmo isso nem sempre é verdade. Helder 12 . Gerenciar recursos de hardware.

Helder 13 .Definições  Visão de um conjunto de dados abstratos: Figura 2 – Sistemas operacionais transformam hardware feio em abstrações bonitas IFTO-Palmas Prof.

Os usuários muitas vezes precisam (arquivos. memória. Sistemas operacionais modernos permitem que múltiplos programas sejam executados ao mesmo tempo.Definições  Gerencia do recursos (função do sistema operacional): – – – – Computadores modernos são constituídos de vários hardwares (processador. Impressora. banco de dados e etc) compartilhar informações – IFTO-Palmas Prof. é um exemplo de dispotivo que necessita ser gerenciada (vários programas tentando imprimir). Quando existem múltiplos usuários em um sistema existe a necessidade de gerenciar e proteger a memória. dispositivos de E/S. dispositivos de E/S e etc). Helder 14 . para que os usuários não interfiram uns nos outros.

controlando as contas e mediando conflitos de requisições entre diferentes programas e usuários O gerenciamento dos recusos por parte do S.Definições  Enfim a função do S. Determinar como o recurso é compartilhado no tempo – quem vai depois de quem e por quanto tempo – é tarefa do sistema operacional. é realizado via compartilhamento ou multiplexação de duas formas diferentes: no tempo e no espaço. em vez dos programas ou usuários esperarem a sua vez para usar o recurso. garantindo suas requisições de recurso.O.O. cada um ocupa a sua parte do recurso (Ex: uso da memória RAM e HD). Quando um recurso é compartilhando/multiplexado no tempo diferentes programas ou usuários aguardam a sua vez para usá-lo (Ex: no uso de uma CPU para atender vários programas). é manter controle sobre quem está usando qual recurso. IFTO-Palmas Prof. No caso do compartilhamento/multiplexação no espaço. Helder 15     .

SISTEMAS OPERACIONAIS Modelos de Sistemas Operacionais IFTO-Palmas Prof. Helder 16 .

 Sistemas operacionais de computadores de grande porte. Sistemas operacionais de tempo real. Helder 17 . Sistemas operacionais de computadores portateis. Sistemas operacionais de computadores pessoais. Sistemas operacionais de nós sensores (sensor node). Sistemas operacionais de multiprocessadores.O.Modelos de S. Sistemas operacionais embarcados. Sistemas operacionais de servidores. Sistemas operacionais de cartões inteligentes (smart cards)         IFTO-Palmas Prof.

– Geralmente com capacidade para mais de mil HDs.  Sistemas operacionais de computadores de grande porte. Helder 18 . com quantidade prodigiosas de E/S. – Distingue-se dos computadores pessoais em termos de E/S.Modelos de S.O. – Exemplo de sistemas operacionais para computadores de grande porte: OS/390. IFTO-Palmas Prof. – Sistema operacional projetado para o processamento simultâneo de muitas tarefas. como o Linux. – Estão ressurgindo como sofisticados servidores Web. – Sistemas operacionais de computadores de grande porte estão sendo gradualmente substituídos por variantes UNIX.

– Esses sistemas operacionais servem múltiplos usuários de uma vez em uma rede e permitem-lhes compartilhar recursos de hardware e software.Modelos de S.O. IFTO-Palmas Prof. – Modelos: Solaris.  Sistemas operacionais de servidores – Na verdade são sistemas operacionais de computadores pessoais muito grandes. Helder 19 . Linux e Windows Server 200x. FreeBsD.

Modelos de S. com relação a aspectos de comunicação. – Essas máquinas precisam de sistemas operacionais especiais. IFTO-Palmas Prof.O.  Sistemas operacionais de multiprocessadores – Para um conjunto de hardware que possui múltiplas CPUs para um único sistema. conectividade e compatibilidade. – Dependendo de como essas CPUs estão interligadas e o que é compartilhado. – Sistemas operacionas populares como linux e windows tem capacidade de usufruir sistemas multiprocessados. – Com o advento de chips multinúcleo os sistemas operacionais de computadores pessoais estão começando a lidar com multiprocessadores em pequena escala. podem ser classificados de: computadores paralelos. multicomputadores ou multiprocessadores. Helder 20 .

Helder 21 . muitas vezes com dezenas de programas iniciados. – Exemplos: Linux. IFTO-Palmas Prof. FreeBsD. Windows Vista.  Sistemas operacionais de computadores pessoais – Esses sistemas dão suporte a multiprogramação.Modelos de S.O. MacOsX.

: Symbiam e Palm OS. – Exemplos de S.O. Helder 22 . IFTO-Palmas Prof.Modelos de S.  Sistemas operacionais de computadores portáteis – É um pequeno computador que cabe no bolso de uma camisa e executa um número pequeno de funções. – Esses sistemas operacionais estão cada vez mais se parecendo com os dos computadores pessoais.O. – Uma diferença importante entre portáteis e PCs é que o primeiro não tem HD.

Modelos de S. Helder 23 .  Sistemas operacionais embarcados – Sistemas embarcados são executados em maquinas que controlam dispositivos e que geralmente não são considerado computadores e que não aceitam instalação de softwares por parte do usuário. carros. – Todo software está armazenado em uma ROM IFTO-Palmas Prof. – A propriedade principal que distingue os sistemas embarcados dos portáteis é a certeza de que nenhum software não confiável jamais será executado nele. telefones celulares e reprodutores de MP3.O. aparelhos de TV. – Ex: sistemas de forno micro-ondas. aparelhos de DVD.

O. – Tal como nos sitemas embarcados os programas devem ser carregados antecipadamente. IFTO-Palmas Prof. com CPU.  Sistemas operacionais de nós sensores – Os nós são computadores minúsculos que se comunicam entre si e com uma estação-base usando comunicação sem fio.Modelos de S. Helder 24 . – O sistema operacional tem que ser pequeno porque os nós têm RAM pequena e a duração da bateria é uma questão relevante. – Exemplo: TinyOS. RAM e ROM e um ou mais sensores ambientais. – Cada nó sensor é um verdadeiro computador.

 Sistemas operacionais de tempo real – Geralmente para esses sistemas é comum a imposição de prazos rígidos para a execução de determinadas tarefas.O. Helder 25 .Modelos de S. IFTO-Palmas Prof.

– Alguns cartões inteligentes são orientados a Java. Helder 26 .O. IFTO-Palmas Prof. Isso significa que a ROM no cartão inteligente contém um interpretador Java. – Possuem grandes restrições de energia e memória.Modelos de S.  Sistemas operacionais de cartões inteligentes – Os menores sistemas operacionais são executados em cartões inteligentes – dispositivos do tamanho de um cartão de crédito que contém um chip de CPU.

SISTEMAS OPERACIONAIS Conceitos sobre Sistemas Operacionais IFTO-Palmas Prof. Helder 27 .

Processo  Processo → é basicamente um programa em execução. lista de processos relacionados e etc. O espaço de endereçamento contém o programa executável. A cada processo está associado o seu espaço de endereçamento. os dados do programa e sua pilha. uma lista de posições de memória que vai de zero até um máximo que esse processo pode ler e escrever. Associado a cada processo está um conjunto de recursos: registradores.    IFTO-Palmas Prof. lista de arquivos abertos. Helder 28 .

Assim quando o processador é tirado do processo temos a seguinte situação: – Quando um processo é suspenso temporariamente. ou seja. todas as informações relativas a um processo – que não sejam conteúdo do seu próprio espaço de endereçamento – são armazenados em uma tabela do sistema operacional denominada tabela de processos. de modo que quando o processo for reiniciado ele continue a ser executado do ponto em que foi interrompido. todos os ponteiros devem ser salvos. Helder 29 . quando usa o processador ele está ativo quando lhe é tirado o processador ele fica suspenso.Processos  Em um sistema de tempo compartilhado. – IFTO-Palmas Prof. os processos fazem alternância do uso do processador. Em muitos sistemas operacionais.

 Figura 3 – Uma árvore de processos IFTO-Palmas Prof. Podemos então chegar a uma estrutura de árvore para processos. Nesse caso o processo criado é denominado processo filho. Helder 30 .Processos  Quando se trabalha com processos em certos cenários podem haver a necessidade de um processo criar outro processo. O processo filho também podem criar outros processos filhos.

A comunicação entre processos também é necessária quando mais de um processo estão trabalhando para concluir uma mesma tarefa.Processos  Os processos filhos criados são independente do processo pai e não compartilham área comum na memória RAM para troca de informações. Comunicação entre processos (IPC) é a denominação dada as técnicas utilizadas para fazerem com que processos se comuniquem.   IFTO-Palmas Prof. eles precisam se comunicar para que possa ocorrer uma sincronização no trabalho. Helder 31 . portanto. não importando se existe “parentesco” entre os processos.

esse processo filho terá a mesma UID do processo pai.Processos  A cada pessoa autorizada a usar um sistema lhe é atribuída uma UID pelo administrador do sistema. Helder 32 .  IFTO-Palmas Prof. A todo processo iniciado. Se um processo for criado através da execução de outro processo. o sistema lhe atribuirá um PID (identificador do processo).

Para impedi-los de interferir na atividade uns dos outros (e com o sistema operacional). entra a técnica de memória virtual. Helder 33     . nesse caso. Outro tema relacionado a memória e o gerenciamento do espaço de endereçamento dos processos. Quando um processo tiver um endereçamento maior que a memória principal do computador e este quiser acessá-la. algum tipo de mecanismo de proteção é necessário. Nos computadores de hoje as memórias são de 64 bits por isso o endereço máximo é de 264.Espaço de Endereçamento  Todo computador tem alguma memória principal que utiliza para armazenar programas em execução. Nos sistemas operacionais de hoje múltiplos programas podem estar armazenados na memória ao mesmo tempo. IFTO-Palmas Prof. O endereçamento do processo vai geralmente de 0 até a quantidade máxima de memória existente no sistema.

um arquivo precisa ser aberto e. Antes que possa ser lido ou escrito. o diretório-raiz. as permissões são verificadas. Helder 34 . chamado descritor de arquivo. fornecendo ao programador um modelo de arquivo agradável e claro.    IFTO-Palmas Prof. Cada arquivo dentro de uma hierarquia de diretórios pode ser especificado fornecendo-se o caminho (path name) a partir do topo da hierarquia de diretórios. para usá-lo em operações subsequentes. independente do dispositivo. o sistema retorna um pequeno valor inteiro. nesse momento. Se o acesso for permitido.Arquivos  Uma das principais funções do sistema operacional é ocultar as peculariedades dos discos e de outros dispositivos de E/S. A maioria dos sistemas operacionais fornece o conceito de diretório como modo de agrupar arquivos.

Helder 35 .Arquivos Figura 4 – Modelo de ligação de um sistema de arquivos IFTO-Palmas Prof.

como os discos. modens e outros dispositivos que recebem e enviam caracteres serialmente. Arquivos especiais de caracteres são usados para modelar impressoras. Existem dois tipos de arquivos especiais: arquivos especiais de bloco e arquivos especias de caracteres. DVDs e etc) devem ser agregados ao diretório raiz do sistema através de procedimentos como mount. Helder 36     .Arquivos  Um conceito interessante no mundo unix/linux é que dispositivos de armazenamento externos (pen-drive. Arquivos especiais de bloco são usados para modelar dispositivos que formam uma coleção de blocos aleatoriamente endereçáveis. Outro conceito importante no mundo unix/linux é o de arquivos especiais. Os arquivos especiais permitem que dispositivos de E/S pareçam-se com arquivos. Desse modo os mesmos procedimentos de leitura e escrita para arquivos podem ser usados nesses dispositivos. IFTO-Palmas Prof.

Helder 37 .  Processo A Pipe Processo B Figura 5 – Dois processos conectados por um pipe IFTO-Palmas Prof. O processo B pode ser os dados lendo-os do pipe como se fosse um arquivo de entrada.Arquivos  Pipe é um tipo de pseuarquivo que pode ser usado para conectar dois processos.

Arquivos em Unix são protegidos atribuindo-se a cada um deles um código de proteção de 9 bits. Helder 38 .Segurança  Cabe ao sistema operacional gerenciar o sistema de segurança para que os arquivos.    IFTO-Palmas Prof. por exemplo. Esses três bits são conhecidos como rwx (r – read. outro para o grupo do proprietário e outro para outros membros. um conjunto de 3 bits para o proprietário. w – write. O código de proteção consite em campos de 3 bits. x – execute). sejam acessíveis apenas por usuários autorizados.

SISTEMAS OPERACIONAIS Chamadas de sistema (system call) IFTO-Palmas Prof. Helder 39 .

ler. por exemplo. Helder 40 .  IFTO-Palmas Prof.Chamadas de sistema  Chamadas de sistemas são mecanismos disponibilizados pelo sistema operacional para serem utilizados pelos programas executado no modo usuário no intuito de solicitar a realização de procedimentos permitidos apenas a programas executando no modo núcleo. As chamadas de sistema disponíveis na interface de um sistema operacional variam de um sistema operacional para outro (embora os conceitos básicos tendam a ser parecidos). escrever ou excluir arquivos. criar.

Helder 41 .SISTEMAS OPERACIONAIS Estrutura de Sistemas Operacionais IFTO-Palmas Prof.

 Os sistemas operacionais geralmente pode ser encontrados em cinco estuturas diferentes: – Sistemas monolíticos. – Sistemas de camadas. – Maquinas virtuais IFTO-Palmas Prof.Estrutura de S. O. Helder 42 . – Modelo cliente-servidor. – Micronúcleo.

O sistema operacional é escrito como uma coleção de rotinas. Nessa abordagem. Helder 43 .Sistemas monolíticos  É o sistema mais comum. ligadas a um único grande programa binário executável  Figura 6 – Um modelo de estruturação simples para um sistema monolitico IFTO-Palmas Prof. o sistema operacional inteiro é executado como um único programa no modo núcleo.

Helder 44 .Sistemas de camadas  Organização do sistema operacional como uma hierarquia de camadas. Camada 5 4 3 2 1 0 O operador Programas de usuários Gerenciamento de entrada/saída Comunicação operador-processo Memória e gerenciamento do swap Alocação do processador e multiprogramação Função IFTO-Palmas Prof. cada uma delas constituída sobre a camada imediatamente inferior.

Helder 45 . Camda 4 – encontra-se os programas dos usuários. Camada 2 – encarrega-se da comunicação entre cada processo e o console de operação (isto é o usuário).     IFTO-Palmas Prof. Camada 1 – encarregava-se do gerenciamento de memória.Sistemas de camadas  Camada 0 – trata a alocação do processador. realizando chaveamento de processos quando ocorrem as interrupções ou quando os temporizadores expiram. Aloca espaços para os processos na memória principal. Camada 3 – encarrega do gerenciamento dos dispositivos de E/S e armazena temporariamente os fluxos de informação que iam para esses dispositivos ou que vinham deles.

Esses tipos de sistemas operacionais são comuns para aplicações de tempo real. que são cruciais e têm requisitos de confiabilidade muito altos. bem definidos. evita-se a parada do sistema operacional inteiro. industriais. dessa forma.   IFTO-Palmas Prof. e apenas um desses módulos – o micronúcleo é executado no modo núcleo e o restante é executado como processos de usuários comuns relativamente sem potência. de aviônica e militares. Helder 46 . Com isso possíveis erros tendem a interromper apenas um módulo do núcleo.Micronúcleo  A idéia por trás do projeto do micronúcleo é alcançar alta confiabilidade por meio da divisão do sistema operacional em módulos pequenos.

Micronúcleo Figura 7 – Um modelo de implementação de um micronúcleo IFTO-Palmas Prof. Helder 47 .

A essência é a presença de processos clientes e servidores. que prestam algum serviço. Frequentemente a camada inferior é o micronúcleo. Helder 48 . conectados via lan ou wan   Figura 8 – Um modelo cliente-servidor IFTO-Palmas Prof. Uma generalização óbvia é executar clientes e servidores em computadores diferentes.Modelo cliente-servidor  Variação da idéia do micronúcleo distinguindo duas classes de processos. os servidores. e os clientes que usam esses serviços.

Helder 49 . O que se usa hoje nos microcomputadores são aplicativos que se instala no software (virtual box). Exemplos de uso: algumas vezes grandes companhias necessitam instalar seus serviços (ex: servidores web. Esses sistemas operacionais são diretamente instalado no hardware. Como cada maquina virtual é uma cópia exata do hardware.Maquinas virtuais  Sistema operacional de tempo compartilhado que virtualiza uma máquina real. A virtualização resolve esse problema   IFTO-Palmas Prof. Diferentes máquinas virtuais podem executar diferentes sistemas operacionais. cada uma delas pode executar qualquer sistema operacional capaz de ser executado diretamente sobre o hardware. ftp e etc) em sistemas operacionais diferentes.

3ª edição. IFTO-Palmas Prof.Andrew S.Referência Bibliográfica Sistemas Operacionais Modernos . Helder 50 .com. www. 2009.google.br. Tanenbaum.