Você está na página 1de 10

CAPÍTULO 2

INTRODUÇÃO À SISTEMAS OPERACIONAIS

Fabio Augusto Oliveira

FEPI – Centro Universitário de Itajubá Curso de Sistemas de Informação

2. Sistema Operacional

Sistema operacional é um conjunto de rotinas executadas pelo processador, que tem como funções básicas:

gerenciar os vários recursos disponíveis no sistema, para atender da maneira mais

eficiente possível o usuário;

gerenciar a execução dos programas do usuário, visando o melhor desempenho do

sistema todo. Em sua forma mais usual, a estrutura de um sistema operacional pode ser visualizada em camadas hierárquicas mostrada na figura 7, onde a camada mais interna, correspondente ao hardware, que suporta todas as camadas de software. A primeira camada de software a envolver o hardware é o núcleo (kernel), que se comporta como um sistema operacional básico. Sobre o núcleo situam-se um conjunto de serviços, constituindo-se o sistema operacional propriamente dito, que fornece o suporte necessário a execução de programas. Em seguida, tem-se a camada mais externa correspondendo ao nível da aplicação, na qual este projeto atua diretamente.

da aplicação, na qual este projeto atua diretamente. Figura 1 - Estruturação de um Sistema Operacional

Figura 1 - Estruturação de um Sistema Operacional em Camadas.

Sistemas Operacionais – Notas de Aula – Capítulo 2 – 2

Os

principais

componentes

relacionados a seguir:

do

sistema

operacional

residem

no

núcleo

e

são

Gerenciamento de I/O: Esconde as peculiaridades do hardware, fornecendo mecanismo de bufferização e drivers dos dispositivos.

Mecanismo de bufferização - poupa tempo de CPU evitando que as solicitações de I/O sejam feitas diretamente nos dispositivos físicos. Ao invés disso, as I/O são feitas em um buffer e de tempo em tempo são efetivadas nos dispositivos.

Drivers - dos dispositivos são rotinas que implementam as funções básicas tais como leitura e escrita de caracteres e string; assim não precisamos programar em baixo nível.

Gerenciamento de Arquivos: Implementa funções tais como:

gerenciamento de espaços livres;

criação e deleção de arquivos;

criação e deleção de diretórios;

primitivas para manipulação de arquivos e diretórios (dir, copy, cd etc

mapeamento dos arquivos em disco etc

);

Gerenciamento de Processos: Implementa funções de manipulação e gerenciamento de processos tais como:

criação e deleção de processos;

escalonamento de processos;

mecanismos de comunicação e sincronização entre processos etc

Processos podem ser comparados com programas capazes de executar tarefas. Aos processos são associados alguns atributos tais como: nome, proprietário, ponteiros para posições da memória, contexto (conteúdo dos registradores e variáveis; situação em que o hardware estava quando o processo foi suspenso) etc Existem basicamente dois tipos de processos: processos do usuário e processos do SO. Os processos do usuário executam as tarefas do usuário e os processos do SO executam as

Sistemas Operacionais – Notas de Aula – Capítulo 2 – 3

tarefas do SO (basicamente todas as funções do SO são executadas por processos específicos) em beneficio dos usuários. Basicamente, os processos do usuário são ativados pelo SO e os processos do SO são ativados pelo próprio SO ou via interrupções (de hardware ou softwares).

Gerenciamento de Memória: Implementa funções tais como:

alocação e liberação de espaço de memória;

gerenciamento de memória virtual (paginação e segmentação)

Proteção do Sistema: Protege o sistema contra usuários "espertinhos" e protege usuários contra outros usuários não autorizados. Existem vários recursos do hardware que favorece o sistema de proteção fornecido pelo SO. Um destes recursos é o próprio mecanismo de memória virtual, que veremos mais adiante. Neste mecanismo o hardware verifica se os acessos à memória estão dentro dos limites de cada usuário. Um outro recurso é a existência de dois modos básicos de execução, fornecidos pelo hardware: o modo supervisor e o modo usuário. Quando o SO está com o controle da máquina, o hardware está setado no modo supervisor. Quando o SO passa o controle para a aplicação do usuário, ele seta o modo para usuário. Quando o controle volta para o SO, através de uma interrupção, o modo é imediatamente setado para supervisor. Com isso, o hardware sempre sabe se o processo que está executando é do sistema (modo supervisor) ou do usuário (modo usuário), e assim pode impedir acessos não autorizados.

2.1. Tipos de Sistemas Operacionais

A evolução do hardware e das aplicações que ele suporta refletem na evolução dos sistemas operacionais. É comum você instalar uma nova placa em sua máquina para controlar algum dispositivo e o sistema operacional já reconhecê-lo e deixá-lo pronto para operação, como é o caso de placas plug-and-play. A evolução dos sistemas operacionais para computadores pessoais popularizou vários conceitos e técnicas que antes só eram conhecidos em ambiente de grande porte. Surgiram

Sistemas Operacionais – Notas de Aula – Capítulo 2 – 4

novos termos para conceitos já conhecidos, que foram apenas adaptados para uma nova realidade. A seguir são apresentados diversos tipos de sistemas operacionais, suas características, vantagens e desvantagens.

Tipos de sistemas operacionais:

Sistemas Monoprogramáveis ou monotarefas

Sistemas Multiprogramáveis ou multitarefas

Sistemas com múltiplos processadores

Sistemas Monoprogramáveis/Monotarefa

Sistemas operacionais que controlam um único programa por vez, ou seja, se o usuário rodar um editor de texto, por exemplo, outro programa a ser executado deve aguardar o término do programa em execução. Um exemplo comum de sistema monotarefa que fez muito sucesso é o DOS. Eles se caracterizam por permitir que o processador, a memória e os periféricos permanecem dedicados exclusivamente à execução de um único programa. Enquanto um programa aguarda por um evento, como a digitação de um dado, o processador permanece ocioso, sem realizar qualquer tipo de processamento, os periféricos, como discos e impressoras, estão dedicados apenas a um único usuário.

como discos e impressoras, estão dedicados apenas a um único usuário. Figura 2 -Sistemas monoprogramáveis/monotarefa

Figura 2 -Sistemas monoprogramáveis/monotarefa

Sistemas Operacionais – Notas de Aula – Capítulo 2 – 5

Sistemas Multiprogramáveis/multitarefa

Nos sistemas multiprogramáveis, existem vários programas dividindo os recursos disponíveis, dando a impressão ao usuário de ocorrerem ao mesmo tempo. Enquanto um programa espera por uma operação de leitura ou gravação, outros programas podem estar sendo processados, assim sendo existirá um compartilhamento da memória e do processador. O sistema deve gerenciar o acesso concorrente aos diversos recursos. Exemplos comuns deste tipo de sistema são:

Windows;

Linux;

Unix;

Etc.

Outra característica importante dos sistemas multitarefa é a possibilidade de vários usuários poderem utilizar o sistema simultaneamente ou não. Cada qual terá suas configurações independentes uns dos outros e com seus ambientes configurados de acordo com sua vontade. Portanto, podemos classificar os sistemas multiprogramáveis como monousuário e multiusuário.

os sistemas multiprogramáveis como monousuário e multiusuário. Figura 3 - Sistemas multiprogramáveis/multitarefa

Figura 3 - Sistemas multiprogramáveis/multitarefa

Sistemas Operacionais – Notas de Aula – Capítulo 2 – 6

Sistemas com Múltiplos Processadores

Nestes sistemas duas ou mais CPU’s são interligadas, trabalhando juntas. Deve ser observada sempre a forma de comunicação entre elas e o grau de compartilhamento da memória e dos dispositivos de E/S. Assim sendo, os sistemas podem ser classificados como:

Fortemente acoplados

o

Sistemas simétricos

o

Sistemas assimétricos

Fracamente acoplados

o

Sistemas operacionais de rede

o

Sistemas operacionais distribuídos

Sistemas Fortemente acoplados

Nestes sistemas existem dois ou mais processadores compartilhando uma única memória e controlados por apenas um único sistema operacional que fazem uso intensivo da CPU.

único sistema operacional que fazem uso intensivo da CPU. Figura 4 - Sistemas fortemente acoplados Como

Figura 4 - Sistemas fortemente acoplados

Como foi dito, apenas um SO gerencia os vários processadores e o compartilhamento de uma única memória. Múltiplos processadores permitem que vários programas sejam executados ao mesmo tempo, ou que um programa seja dividido em subprogramas, para execução simultânea em mais de um processador.

Sistemas Operacionais – Notas de Aula – Capítulo 2 – 7

Os sistemas fortemente acoplados podem ser divididos conforme a simetria existente entre seus processadores, ou seja, todos os processadores podem executar ou não as mesmas funções. Existem duas classificações para esses tipos de sistemas:

Sistemas Assimétricos

Sistemas Simétricos

Sistemas Assimétricos

Neste tipo de sistema, também chamado de mestre/escravo, somente um processador (mestre) pode executar serviços do Sistema Operacional, como, por exemplo, realizar operações de E/S. Uma conseqüência dessa organização é que se o processador mestre falhar todo o sistema para. Caso isso aconteça, o sistema deve ser reconfigurado, para um escravo assumir o papel de mestre.

reconfigurado, para um escravo assumir o papel de mestre. Figura 5 - Sistemas Assimétricos Sistemas Simétricos

Figura 5 - Sistemas Assimétricos

Sistemas Simétricos

Nestes sistemas existe a simetria dos processadores, todos eles realizam quase que as mesmas funções. Poucas delas ficam a cargo de um único processador, como, por exemplo, a inicialização do sistema (boot). No processamento simétrico, um programa pode ser executado por qualquer processador, inclusive por vários processadores ao mesmo tempo, o que é conhecido como paralelismo. Além disso, quando um processador falhar, o sistema continua em

Sistemas Operacionais – Notas de Aula – Capítulo 2 – 8

funcionamento sem nenhuma interferência manual, porém com menor capacidade de computação.

manual, porém com menor capacidade de computação. Figura 6 - Sistemas Simétricos Sistemas Fracamente

Figura 6 - Sistemas Simétricos

Sistemas Fracamente acoplados

Esses sistemas possuem dois ou mais computadores interligados, cada um com o seu próprio SO, gerenciando os seus recursos, como processador, memória e dispositivos de E/S, eventualmente trocam informações para utilização de recursos, como uma impressora, discos, etc. Neste caso, se a máquina que tiver a impressora falhar, as outras continuam em funcionamento e o usuário pode continuar exercendo outra atividade menos impressão de documentos. Os sistemas fracamente acoplados caracterizam-se por possuir dois ou mais sistemas operacionais, conectados através de linhas de comunicação.

conectados através de linhas de comunicação. Figura 7 - Sistemas fracamente acoplados A grande diferença

Figura 7 - Sistemas fracamente acoplados

A grande diferença entre os dois tipos é que nos fortemente acoplados existe apenas um espaço de endereçamento de memória compartilhado por todos os processadores, enquanto nos sistemas fracamente acoplados cada sistema tem sua própria memória

Sistemas Operacionais – Notas de Aula – Capítulo 2 – 9

individual. Além disso, a taxa de transferência entre CPU’s e memória nos fortemente acoplados é normalmente maior que nos fracamente acoplados. Até a década de 80, os SO’s e as aplicações eram tipicamente concentrados em sistemas de grande porte, com um ou mais processadores, os usuários utilizam terminais não inteligentes conectados a linhas seriais dedicadas, esses terminais não tinham capacidade de processamento, encaminhavam os pedidos ao sistema, que realizava o processamento e depois retornava o resultado, utilizando as linhas de comunicação. Com a evolução dos computadores pessoais e das estações de trabalho, juntamente com o avanço das telecomunicações e da tecnologia de redes, surgiu um novo modelo, chamado modelo de rede de computadores.

um novo modelo, chamado modelo de rede de computadores. Figura 8 – Redes de Computadores Sistemas

Figura 8 – Redes de Computadores

Sistemas Operacionais Distribuídos

Em sistemas distribuídos, cada componente da rede também possui seu próprio SO, memória, processador e dispositivos. O que define um sistema distribuído é a existência de um relacionamento mais forte entre os seus componentes, onde geralmente os Sistemas Operacionais são os mesmos. Para o usuário e suas aplicações, é como se não existisse uma rede de computadores, mas sim um único sistema centralizado. A grande vantagem desses sistemas é a possibilidade do balanceamento de carga, ou seja, quando um programa é selecionado para execução, sua carga será efetuada no processador mais livre. Nos sistemas distribuídos uma aplicação pode ser executada por

Sistemas Operacionais – Notas de Aula – Capítulo 2 – 10

qualquer processador. È permitida a divisão de uma aplicação em diferentes partes (aplicações distribuídas), que se comunicam através de linhas de comunicação, podendo cada parte ser processada em um sistema independente. Como as aplicações estão distribuídas por diversos sistemas, caso ocorra algum problema com um dos componentes, é possível que um deles assuma o papel do sistema defeituoso. Em aplicações de missão crítica, como controle de tráfego aéreo, existem sistemas especialmente desenvolvidos para essa finalidade, conhecidos como sistemas de tolerância à falhas (fault tolerance).