Você está na página 1de 22

Sistemas Operativos

INTRODUÇÃO
1. Objectivos e Fundamentos dos
Sistemas Operativos
► Um sistema operativo é um programa ou conjunto de programas que faz o
gerenciamento do computador. Sua principal função é controlar o funcionamento
do computador, gerenciando a utilização e o compartilhamento de recursos tais
como processador, memória e dispositivos de entrada/saída. São exemplos de
sistemas operacionais os antigos D.O.S. (Disk Operation System) e o Unix, e os
atuais Windows XP, Windows Vista e Seven(7), Solaris, Mac OS X, Linux,
FreeBSD, Symbian, Android, iOS entre outros. Sendo alguns de sistemas
operacionais livres e distribuídos com o código-fonte aberto, outros são sistemas
proprietários. Também temos aqueles que foram desenvolvidos exclusivamente
para celulares e smartphones.
1. Objectivos e Fundamentos dos
Sistemas Operativos (cont.)
▪ Gerenciar os recursos de hardware de forma que sejam utilizados da melhor forma
possível, ou seja, “tirar” o máximo proveito da máquina fazendo com que seus
componentes estejam a maior parte do tempo ocupados com tarefas existentes; e

▪ Prover funções básicas para que programas de computador possam ser escritos
com maior facilidade, de modo que os programas não precisem conhecer detalhes
da máquina para poderem funcionar.
2. Evolução histórica
2. Evolução histórica (cont.)
1. Monitor de Controlo
❑ Permite ao utilizador: – Carregar programas em memória, editá-los, etc. – Resultados
dos programas: listagens, fitas perfuradas
❑ Cada utilizador tem um determinado tempo atribuído durante o qual tem o
computador apenas para si
❑ O monitor é formado por um conjunto de utilitários:
❑ Interpretador de linguagem de comando
❑ Compilador, Assemblador (Assembler)
❑ Editor de ligações (linker)
❑ Carregador de programas em memória (loader)
❑ Biblioteca de rotinas para controlo de periféricos (consola, leitor de cartões, etc.)
2. Evolução histórica (cont.)
2. Tratamentos por Lotes
❑ Os periféricos mecânicos (ex.: impressoras, leitores/perfuradores de fita) eram muito lentos
quando comparados com a velocidade de processamento do computador
❑ Solução inicial:
❑ Separar as Entradas/Saídas do processamento
❑ Entrada:
❑ Computador auxiliar lê os trabalhos e executar escreve-os para ficheiros em banda magnética
❑ Quando o trabalho em curso termina o SO vai à lista de trabalhos e selecciona o próximo a executar-se

❑ Saída
❑ Em vez de imprimir directamente os programas escrevem a saída em ficheiros que são enviados para a
impressora quando a aplicação termina - spooling

❑ Evolução:
❑ Os periféricos executam tarefas autónomas e avisam o processador do fim da sua execução através de
interrupções.
❑ Execução em paralelo dos programas e das E/S
2. Evolução histórica (cont.)

3. Sistemas multi-programados
❑ O mecanismo de interrupções permite multiplexar o processador entre várias
actividades concorrentes.
❑ No exemplo anterior entre um programa e as entradas/saidas,
❑ Mas esta capacidade de alternar a execução pode ser estendida à multiplexagem de vários
programas residentes na memória.

❑ Execução concorrente de vários programas:


❑ permite optimizar a utilização do processador
❑ ex.: Programa P1 acede ao disco e fica bloqueado enquanto o controlador de disco
funciona; durante esse tempo, o Programa 2 pode ser executado pelo processador
2. Evolução histórica (cont.)

4. Sistemas Interactivos
5. Memória Virtual
❑ Decompôr o espaço de endereçamento dum processo em blocos. I
❑ Manter em memória apenas alguns desses blocos (código e dados) do processo em
execução.
❑ Manter os outros blocos no disco:
❑ na área de swap;
❑ no sistema de ficheiros (código, p.ex.).

❑ Transferir os blocos entre o disco e a memória, conforme necessário.


2. Evolução histórica (cont.)

6. Sistemas distribuidos
❑ Consequência da evolução de:
❑ Redes de dados
❑ Computadores pessoais – PC
❑ Sistemas abertos (normalização oficial e de facto)
❑ Custo e desempenho da electrónica digital

❑ Aplicações iniciais: Mail, FTP


❑ SO tem vindo a englobar funcionalidade dos sistemas distribuídos
❑ Exemplos: protocolos de rede, sistema de ficheiros distribuído
3. Tipos de Sistemas Operativos

Os diferentes tipos de sistemas operacionais são basicamente classificados de acordo


com o número de processos do usuário que o SO pode executar ou de acordo com o
número de processadores que o sistema possui.
1. Sistema Operacional (Monotarefa), possui as seguintes características:
❑ É executado por um único processador e é capaz de gerenciar a execução de um
único programa (tarefa) do usuário por vez.
❑ Permite que o processador, a memória e os periféricos fiquem dedicados a um único
usuário; são portanto monousuários (monoterminais).
❑ São sistemas de simples implementação.
3. Tipos de Sistemas Operativos (cont.)

2. Sistemas Operacionais Multiprogramados (Multitarefa), possui as seguintes características:


❑ É executado por um ou vários processadores. No caso de vários processadores, é classificado
como "SO para Multiprocessadores" (discutido a seguir). No caso de apenas um processador,
permite que vários programas disputem os recursos do sistema (paralelismo lógico ou virtual), e:
❑ Podem ser monousuário ou multiusuário:
❑ Monousuário: um único usuário executando vários programas (monoterminal).
❑ Multiusuário: vários usuários executando vários programas (multiterminais).
❑ Divide o tempo da cpu entre os vários programas e entre os vários usuários.
❑ Diminui a ociosidade, permitindo que durante o tempo de E/S outros processos sejam executados.

Inicialmente, os sistemas multiprogramados começaram com os sistemas de batch; depois com os


sistemas time-sharing e finalmente com os sistemas real-time.
3. Tipos de Sistemas Operativos (cont.)

3. Sistemas Operacionais Batch(lote)


Os programas eram enfileirados em disco ou fita e aguardavam a execução, um por vez.
Normalmente, os programas (jobs) não necessitavam de interação com o usuário. Embora
sejam considerados como os precursores dos sistemas multiprogramados, pois
aproveitavam os tempos de E/S para a execução de outros processos, o processamento era
puramente sequêncial e ofereciam longos tempos de resposta.
3. Tipos de Sistemas Operativos (cont.)

4. Sistemas Operacionais de tempo compartilhado (time-sharing)


Os usuários interagem através de terminais e teclados on-line. São sistemas
multiterminais, cujo processamento é controlado por um computador central. O
sistema executa uma varredura (polling) nos terminais, compartilhando o tempo entre
eles (time-sharing).

Neste sistema, o processador executa os programas de forma intercalada no tempo,


alocando uma fatia de tempo (time-slice) para cada um, por vez, realizando assim a
multiprogramação. Cada usuário tem a ilusão que todo o sistema está totalmente
dedicado exclusivamente para ele.
3. Tipos de Sistemas Operativos (cont.)

5. Sistemas Operacionais de Tempo Real (real-time)

São semelhantes aos sistemas time-sharing, embora exijam tempo de resposta dentro
de limites rígidos, na execução de tarefas. O conceito de time-slice é muito pouco
utilizado e os processos executam o tempo necessário e conforme sua prioridade. São
sistemas muito utilizados em controle de processos, onde o tempo é um fator crucial:
refinaria de petróleo, automação industrial, controle de tráfego aéreo etc.. Neste
sistema, os processos geralmente são ativados por sensores.
3. Tipos de Sistemas Operativos (cont.)

6. Sistemas Operacionais Multiprocessados, possui as seguintes características:


❑ O sistema possui vários processadores, que podem estar confinados a um mesmo
gabinete (centenas de processadores) ou espalhados fisicamente em forma de rede
(dezenas de processadores).
❑ Executam várias tarefas simultaneamente e portanto são multitarefas.
❑ Cada processador pode operar monoprogramado ou multiprogramado.
❑ Ocorre paralelismo físico ou real, quando mais de um processador está sendo
utilizado. Ocorre também paralelismo lógico, quando o número de tarefas é maior
que o número de processadores disponíveis.
❑Podem ser fracamente acoplados ou fortemente acoplados:

❑ Fracamente acoplados (loosely coupled): cada processador possui sua própria


memória e executa seu próprio sistema operacional (Sistema Operacional de
Rede) ou parte de um sistema operacional global (Sistema Operacional
Distribuído).

❑ Fortemente acoplados (tightly coupled): todos os processadores compartilham


uma única memória. Estes processadores geralmente são coordenados por um
único SO localizado em um outro computador hospedeiro, que se encarrega
de distribuir as tarefas entre os processadores e gerenciar a execução.
4. Sistemas Operativos da Microsoft

5. Sistemas Operativos da Linux

6. Sistemas Operativos da UNIX


7. Arquitectura do Sistema Operativo

Os Sistemas Operativos podem ser divididos em 4 estruturas diferentes:


❑ Monolítica
❑ Hierárquica;
❑ Máquina Virtual;
❑ Cliente-Servidor;
7. Arquitectura do Sistema Operativo
(cont.)
1. Estrutura Monolítica
❑ Estrutura utilizada pelos primeiros sistemas operativos, constituídos por um único programa, composto por
várias sub-rotinas, de tal forma que cada uma pode chamar qualquer uma das outras. É exemplo deste tipo de
estrutura, o conhecido MS-DOS.
Características deste tipo de estrutura:
► Construção do programa final com base em módulos, que vão ser unidos através de Linkers (utilitário que a partir de
vários módulos gera um único programa executável)
► Boa definição de parâmetros entre as estruturas
► Geralmente são feitos à medida, pelo que são eficientes e rápidos na execução e na gestão
► Não são muito flexíveis a diferentes ambientes para além dos quais foram criados

Dificuldades associadas a uma estrutura Monolítica:


► Difícil de compreender
► Difícil de modificar
► Pouco fiável (um erro "em qualquer lado" pode provocar um crash)
► Difícil de manter
7. Arquitectura do Sistema Operativo
(cont.)
2. Estrutura Hierárquica

À medida que foram aumentando as necessidades dos utilizadores e melhoramento


dos sistemas, tornou-se necessário haver uma maior organização do software do SO.
Desenvolveu-se assim um SO em que uma parte do sistema continha subpartes,
organizadas em forma de níveis, ou seja, dividiu-se o SO em pequenos blocos bem
definidos, com uma interface clara, para permitir a ligação com outros blocos. As
principais funções do sistema encontram-se associadas a uma camada.
7. Arquitectura do Sistema Operativo
(cont.)
3. Máquina Virtual
Uma máquina virtual é uma cópia via software que procura simular uma máquina
real. Uma máquina virtual (Virtual Machine – VM) pode ser definida como “uma
duplicata eficiente e isolada de uma máquina real”. A IBM define uma máquina
virtual como uma cópia isolada de um sistema físico, e esta cópia está totalmente
protegida.
Ao invés de ser uma máquina real, isto é, um computador real, feito de hardware e a
executar um sistema operacional específico, uma máquina virtual é um computador
fictício criado por um programa de simulação. A sua memória, processador e outros
recursos são virtualizados. A virtualização é a interposição do software (máquina
virtual) em várias camadas do sistema. É uma forma de dividir os recursos de um
computador em múltiplos ambientes de execução.
7. Arquitectura do Sistema Operativo
(cont.)
4. Cliente-Servidor
Os Sistemas Cliente-Servidor são modelos de computação que distinguem dois tipos
básicos de equipamentos computacionais: servidores e clientes, sendo interligados
entre si geralmente utilizando-se uma rede de computadores. Neste modelo,
geralmente os servidores agregam as funções mais importantes do sistema, deixando
aos clientes apenas o processamento de aplicações mais básicas.
As principais características deste tipo de sistema são:
► Elevar a camada onde são implementadas as funções normalmente efetuadas pelo
sistema operativo
► Reduzir as funções do sistema operativo
► Tornar menor e mais fácil a manutenção de cada parte do sistema operativo

Você também pode gostar