Você está na página 1de 16

Abede Isaquiel Cugulo

Sistemas Operativos

Licenciatura em Informatica com Habilidades em Engenharia de Redes e Engenharia de


Desenvolvimento de Software, 2° Ano, Pos Laboral

Universidade Licungo

Maio de 2020

Beira
Abede Isaquiel Cugulo

Sistemas Operativos

Licenciatura em Informatica com Habilidades em Engenharia de Redes e Engenharia de


Desenvolvimento de Software, 2 Ano, Pos Laboral

Docente:

Universidade Licungo

Maio de 2020

Beira
Índice
Introdução.............................................................................................................................................1

A máquina virtual..................................................................................................................................2

Maquina Estendida................................................................................................................................2

Máquina Multinível...............................................................................................................................3

Arquiteturas do Núcleo..........................................................................................................................4

Arquitetura Monolítica..........................................................................................................................5

Arquitetura em Camadas.......................................................................................................................5

Máquina Virtual....................................................................................................................................6

Arquitetura MicroKernel.......................................................................................................................6

Vantagens e desvantagens de cada S.O.................................................................................................6

Gerações dos Sistemas Operativos........................................................................................................7

A Primeira Geração (1945-1955): Válvulas e Plugs..........................................................................7

A Segunda Geração (1955-1965): Transistores e Processamento em Batch......................................8

A Terceira Geração (1965-1980): Circuitos Integrados e Multiprogramação....................................8

A Quarta Geração (1980-): Computadores Pessoais e Estações de Trabalho.....................................9

Conclusão............................................................................................................................................11

Bibliografia..........................................................................................................................................12
Introdução
Neste trabalho irei abordar sobre o as maquinas em um Sistema Operacional que e um
programa, que serve como ponte entre os aplicativos software e a parte física do sistema
hardware, e tem a função de gerenciar seus recursos dizer qual aplicativo terá acesso ao
processador, memória, sistema de arquivo, etc. Um outro conceito interessante é que sistema
operacional pode ser definido como um conjunto de programas especialmente feitos para a
execução de várias tarefas, entre as quais servir de intermediário entre o utilizador e o
computador. Um sistema operacional, tem também como função, gerir todos os periféricos de
um computador.

1
A máquina virtual
E um contêiner de software rigidamente isolado que contém um sistema operacional e
aplicativos. Cada VM autocontida é completamente independente. Colocar múltiplas VMs
em um único computador permite que vários sistemas operacionais e aplicativos sejam
utilizados em um só servidor físico ou host. Uma fina camada de software, chamada
hypervisor, desassocia as máquinas virtuais do host e aloca dinamicamente os recursos de
computação a cada uma dessas máquinas, conforme o necessário.
A virtualização é o processo de criar uma representação baseada em software (ou virtual) de
algo, em vez de um processo físico. Consiste na emulação de ambiente isolado, capazes de
rodar diferentes sistemas operacionais dentro de uma mesma máquina.
Isso permite a execução de softwares que não foram projetados originalmente para um
determinado sistema operacional, uma vez que a máquina virtual que será executada pode
conter o sistema operacional necessário ao software sem que isso gere problemas ao sistema
do computador hospedeiro.
Essa técnica ainda oferece como vantagem uma camada de abstração dos verdadeiros
recursos de uma máquina, provendo um hardware virtual para cada sistema, o que possibilita
a distribuição da máquina virtual para qualquer computador hospedeiro independente do
hardware ou sistema operacional que esteja sendo utilizado.

Maquina Estendida

A arquitetura, conjunto de instruções, organizações de memória, E/S e estrutura de


barramentos da maioria dos computadores em nível de linguagem de máquina é primitivo e
de difícil programação. Examinando como é feita a E/S da unidade de discos flexíveis
(disquete), são realizados inúmeros comandos para leitura e escrita de dados, movimentação
do braço do disco e formatação de trilhas. Além da inicialização, sinalização, reinicialização
e recalibração do controlador e das unidades de disquetes. Sem entrar em detalhes de fato, é
claro que um programador de nível médio provavelmente não se envolverá com os detalhes
de programação das unidades de disco, em vez disso, busca lidar com essas unidades de
modo mais abstrato e simples. Esse programa que oculta a verdade ao programador sobre o
hardware e apresenta uma visão simples é o Sistema Operacional, permitindo que o usuário
trabalhe com o conceito de arquivos com nomes para dividir o disco. Em todo caso a
abstração oferecida pelo sistema operacional é mais simples e mais fácil de usar que a do
hardware, oferecendo ao usuário o equivalente a uma máquina estendida.

2
Como máquina estendida, o sistema operacional oculta a ‘verdade’ do programador sobre o
hardware e apresenta uma visão simples e agradável. Ele protege o programador do hardware
do disco e apresenta uma interface orientada a arquivos simples, e também oculta muitos
detalhes desagradáveis relacionados ao nível inferior O sistema operacional fornece uma
variedade de serviços que os programas podem obter usando instruções especiais conhecidas
como chamadas ao sistema.

Máquina Multinível
Um programa pode ser definido como uma seqüência de instruções que descrevem como
executar uma determinada tarefa. Uma instrução pode ser definida como um comando para o
processador. Linguagem de máquina corresponde ao conjunto de instruções primitivas do
computador. Devem ser simples, reduzindo a complexidade e custo dos circuitos. Tradução é
o método pelo qual um programa escrito numa linguagem L2 é substituído por um outro
programa escrito em L1, então executado pela máquina M1, cuja linguagem de máquina é
L1.

Interpretação é o método pelo qual um programa escrito em L1 executa cada instrução do


programa escrito em L2, através de uma seqüência de instruções L1 equivalentes. Máquina
virtual compreende um computador hipotético para uma determinada linguagem, tendo esta
como linguagem de máquina. Para uma melhor compreensão da arquitetura de um
computador, podemos dividí-lo em níveis de hierarquia. Nível compreende uma máquina M
com sua linguagem de máquina L, dentro de um computador. Uma máquina define uma
linguagem, assim como uma linguagem define uma máquina. Um computador com n níveis
pode ser visto como n diferentes máquinas virtuais, cada uma com a sua linguagem de
máquina. Um programador de nível n não precisa conhecer os níveis inferiores. Nível 0 ou
nível de lógica digital é o hardware verdadeiro da máquina, cujos circuitos executam os
programas em linguagem de máquina de nível 1. Não existe aqui o conceito de programa
como uma seqüência de instruções a serem executadas. Neste nível, os objetos são
denominados portas.

 Nível 1 ou nível de microprogramação é o verdadeiro nível de máquina, havendo um


programa denominado microprograma, cuja função é interpretar as instruções de nível
2. A instrução neste nível é denominada microinstrução.
 Nível 2 ou nível convencional de máquina é o primeiro nível de máquina virtual. A
linguagem de máquina deste nível é comumente denominada linguagem de máquina.

3
As instruções são executadas interpretativamente pelo microprograma. Em máquinas
que não tenham o nível de microprogramação, as instruções de nível convencional de
máquina são executadas diretamente pelos circuitos.
 Nível 3 ou nível de sistema operacional apresenta a maior parte das instruções em
linguagem de nível 2, um conjunto de novas instruções, organização diferente da
memória, capacidade de execução de dois ou mais programas em paralelo. As novas
facilidades são realizadas por um interpretador denominado sistema operacional, em
execução no nível 2. As instruções de nível 3 idênticas às de nível 2 são executadas
diretamente pelo microprograma.
 Nível 4 ou nível de linguagem de montagem consiste de uma forma simbólica para
uma linguagem de nível inferior. Os programas em linguagem de montagem são
traduzidos para uma linguagem de nível 2 ou 3, e, então, interpretados pela máquina
apropriada. O programa que executa a tradução é denominado montador.
 Nível 5 ou nível de linguagem orientada para problemas consiste de linguagem de
alto-nível. Os programas escritos nessas linguagens são, normalmente, traduzidos para
o nível 3 ou 4 por tradutores conhecidos como compiladores.
 Os níveis 2 e 3 são sempre interpretados, enquanto os níveis 4 e 5 são, geralmente,
traduzidos. As linguagens de máquina dos níveis 1, 2 e 3 são numéricas, ao passo que
as dos níveis 4 e 5 são simbólicas, contento palavras e abreviaturas. O hardware é
constituído pelos circuitos eletrônicos e o software é constituído pelos programas. O
firmware consiste no software embutido em dispositivos eletrônicos durante a
fabricação. Em muitos computadores, o microprograma está em firmware.

Hardware e software são logicamente equivalentes, isto é, qualquer operação efetuada pelo
software pode também ser implementada pelo hardware e qualquer instrução executada pelo
hardware pode também ser simulada pelo software. A decisão de colocar certas funções em
hardware e outras em software baseia-se em fatores tais como: custo, velocidade,
confiabilidade e possíveis modificações.

Arquiteturas do Núcleo
O projeto de um sistema operacional é realizado de forma a atender a requisitos operacionais
de desempenho, portabilidade, confiabilidade, facilidade de uso, segurança. 

4
O projeto do sistema operacional também depende da arquitetura de hardware e também do
tipo de sistema operacional que se deseja construir: batch, tempo compartilhado, tempo real,
multi programado, multi processado, etc.
Os primeiros sistemas operacionais eram escritos em Assembly mas isso garantia
performance excepcional nos sistemas operacionais mas causava uma dependencia muito
grando do sistema operacional em relação ao hardware da máquina e comprometia
seriamente a portabilidade. O sistema operacional tinha que ser reescrito se precisasse ser
instalado em uma máquina com arquitetura e hardware diferente.
O sistemas operacionais atuais são escritos em linguagens de alto nível, principalmente C e
C++ o que garante portabilidade e independencia de hardware conteudo o desempenho é
inferior aos antigos sistemas operacionais. Para minimizar este problema, os projetistas ainda
usam Assembly para os componentes críticos do sistema operacional tais como drivers e as
rotinas de tratamento de exceção que nós vimos na aula passada.
A forma como os componentes do sistema operacional são organizados pode variar, sendo
que existem várias arquiteturas de sistemas operacionais disponíveis.

Arquitetura Monolítica
A arquitetura monolítica foi utilizada nos primeiros sistemas operacionais tais como CP/M,
MS-DOS e nas primeiras versões do Linux. Nesta arquitetura os componentes do sistema são
compilados em módulos separados e depois linkados em um único programa executável. Os
módulos são carregados em memória e interagem entre si. A manutenção deste tipo de
sistema é bem difícil.

Arquitetura em Camadas
A arquitetura em camadas surgiu devido a complexidade dos sistema operacionais na medida
em que foram evoluindo. Nesta arquitetura o sistema operacional é formado por níveis ou
camadas onde as camadas inferior oferecem serviços às camadas superiores. As camadas
inferiores são privilegiadas
A vantagem deste tipo de arquitetura é o isolamento das camadas e a segurança e proteção às
camadas mais internas onde fica o kernel. 
A desvantagem é que o desempenho do sistema é afetado pela troca de modo de acesso.
Quando um aplicativo do usuário solicita um serviço da camada kernel é necessário passar
por várias outras camadas ( supervisor, executivo ) e realizar várias trocas do modo de
acesso. 

5
A maioria dos sistemas operacionais atuais tais como Linux e Windows utilizam o modelo de
arquitetura em camadas sendo que estes sistemas implementam apenas duas camadas
( modo usuário e modo kernel ).

Máquina Virtual
Um sistema operacional é formado por níveis, onde a camada de nível mais baixo é o
hardware. Acima dessa camada temos o sistema operacional que oferece serviços para os
aplicativos do usuário. 
Na arquitetura de máquina virtual existe uma camada intermediária entre o hardware e o
sistema operacional chamada gerencia de máquinas virtuais. 
Esta camada cria diversas máquinas virtuais independentes, onde cada uma oferece uma
cópia virtual do hardware, incluindo os modos de acesso, interrupções, memória, dispositivos
de entrada e saída, etc.
Como cada máquina virtual é independente das outras, é possível que cada VM tenha seu
próprio sistema operacional e que seus usuários executem suas aplicações como se o
computador  estivesse dedicado a cada um deles. Esta é uma arquitetura altamente complexa.

Arquitetura MicroKernel
A arquitetura MicroKernel busca tornar o núcleo do sistema, o kernel o menor e mais simples
possível. Nesta arquitetura os serviços do sistema operacional são disponibilizados como
serviços. Cada serviço oferece um conjunto de funções como gerência de arquivos, gerência
de processos, gerência de memória e etc.
Quando uma aplicação do usuário solicita um serviço é feita uma solicitação ao processo
responsável pelo serviço. 
A aplicação que solicita o serviço é chamada cliente e o processo que responde à solicitação é
chamado de servidor.
O núcleo do sistema se limita a realizar a comunicação entre cliente e servidor. É portanto um
núcleo muito mais simples.
Nesta arquitetura, os processos executam suas funções em modo usuário, ou seja, não tem
acesso a instruções privilegiadas, não tem acesso aos componentes do sistema. Apenas o
núcleo executa em modo kernel. Isto garante que caso haja um erro em um processo o
sistema não ficará completamente comprometido. Isso aumenta a disponibilidade do sistema. 

6
Vantagens e desvantagens de cada S.O
Vantagens:

 Permite substituir diversas máquinas físicas existentes por máquinas virtuais,


poupando desta forma energia eléctrica;
 Podemos simular, num único computador, uma rede com diversos computadores
(virtuais funcionais) e com diferentes sistemas operativos;
 Podemos continuar a utilizar software e hardware que supostamente só "funciona" em
sistemas mais antigos;
 Podemos testar a compatibilidade de uma determinada aplicação em diferentes
sistemas operativos, sem sairmos do mesmo PC.
 Podemos usar uma máquina virtual para fazer diversos testes, instalações, sem
estarmos preocupados com o sistema operativo base;
 É possível duplicar n vezes cada máquina virtual, sem necessidade de proceder a
novas instalações (demoradas) de sistemas operativos;
 É possível criar diversos pontos de restauro;
 Cada máquina virtual ficará residente numa pasta no nosso sistema base;
 Aumenta a produtividade reduzindo o tempo necessário para provisão, implantação e
reconfiguração de máquinas físicas. 

Desvantagens:

 Cada máquina virtual requererá um determinado espaço em disco (para conter o


sistema operativo e outras aplicação sobre o mesmo sistema operativo);
 É atribuído ou reservado a cada máquina virtual uma determinada porção de memória
RAM;
 A capacidade de processamento será repartida pelas diferentes máquinas virtuais;
 Poderá ocorrer alguma dificuldade quando é necessário "comunicar" com o sistema
principal, ás quais podem ser resolvidas com um ou outro driver;
 O Autorun deixa de funcionar.

Gerações dos Sistemas Operativos


A Primeira Geração (1945-1955): Válvulas e Plugs
Após muitos esforços mal sucedidos de se construir computadores digitais antes da 2ª
Guerra mundial, em torno da metade da década de 1940 alguns sucessos foram obtidos na
construção de máquinas de cálculo empregando-se válvulas e relés. Estas máquinas eram

7
enormes, ocupando salas com racks que abrigavam dezenas de milhares de válvulas (e
consumiam quantidades imensas de energia).

Naquela época, um pequeno grupo de pessoas projetava, construía, programava, operava e


mantinha cada máquina. Toda programação era feita absolutamente em linguagem de
máquina, muitas vezes interligando plugs para controlar funções básicas da máquina.
Linguagens de programação eram desconhecidas; sistemas operacionais idem. Por volta de
1950 foram introduzidos os cartões perfurados aumentando a facilidade de programação.

A Segunda Geração (1955-1965): Transistores e Processamento em Batch


A introdução do transistor mudou radicalmente o quadro. Computadores tornaram-se
confiáveis e difundidos (com a fabricação em série), sendo empregados em atividades
múltiplas. Pela primeira vez, houve uma separação clara entre projetistas, construtores,
operadores, programadores e pessoal de manutenção. Entretanto, dado seu custo ainda
elevado, somente corporações e universidades de porte detinham recursos e infra-estrutura
para empregar os computadores desta geração.

Estas máquinas eram acondicionadas em salas especiais com pessoal especializado para sua
operação. Para executar um job (programa), o programador produzia um conjunto de cartões
perfurados (um cartão por comando do programa), e o entregava ao operador que dava
entrada do programa no computador. Quando o computador completava o trabalho, o
operador devolvia os cartões com a impressão dos resultados ao programador. A maioria dos
computadores de 2ª geração foram utilizados para cálculos científicos e de engenharia. Estes
sistemas eram largamente programados em FORTRAN e ASSEMBLY. Sistemas
operacionais típicos2 eram o FMS (Fortran Monitor Systems) e o IBSYS (IBM's Operating
Systems).

A Terceira Geração (1965-1980): Circuitos Integrados e Multiprogramação


No início dos anos 60, a maioria dos fabricantes de computadores mantinham duas linhas
distintas e incompatíveis de produtos. De um lado, havia os computadores cientícos que eram
usados para cálculos numéricos nas ciências e na engenharia. Do outro, haviam os
computadores comerciais que executavam tarefas como ordenação de dados e impressão de
relatórios, sendo utilizados principalmente por instituições financeiras.

A IBM tentou resolver este problema introduzindo a série System/360. Esta série consistia de
máquinas com mesma arquitetura e conjunto de instruções. Desta maneira, programas

8
escritos para uma máquina da série executavam em todas as demais. A série 360 foi projetada
para atender tanto aplicações científicas quanto comerciais.

Não foi possível para a IBM escrever um sistema operacional que atendesse a todos os
conflitos de requisitos dos usuários. O resultado foi um sistema operacional (OS/360) enorme
e complexo comparado com o FMS. A despeito do tamanho e problemas, o OS/360 atendia
relativamente bem às necessidades dos usuários. Ele também popularizou muitas técnicas
ausentes nos sistemas operacionais de 2ª geração, como por exemplo a multiprogramação.
Outra característica apresentada foi a capacidade de ler jobs dos cartões perfurados para os
discos, assim que o programador os entregasse. Dessa maneira, assim que um job terminasse,
o computador iniciava a execução do seguinte, que já fôra lido e armazenado em disco.

Esta técnica foi chamada spool (simultaneous peripherical operation on line), sendo também
utilizada para a saída de dados. O tempo de espera dos resultados dos programas reduziu-se
drasticamente com a 3ª geração de sistemas. O desejo por respostas rápidas abriu caminho
para o time-sharing, uma variação da multiprogramação onde cada usuário tem um terminal
on-line e todos compartilham uma única CPU. Após o sucesso do primeiro sistema
operacional com capacidade de time-sharing (o CTSS) desenvolvido no MIT, um consórcio
envolvendo o MIT, a GE e o Laboratório Bell foi formado com o intuito de desenvolver um
projeto ambicioso para a época: um sistema operacional que suportasse centenas de usuários
on-line. O MULTICS (MULTiplexed Information and Computing Service) introduziu muitas
idéias inovadoras, mas sua implementação mostrou-se impraticável para a década de
sessenta. O projeto MULTICS influenciou os pesquisadores da Bell que viriam a desenvolver
o UNIX uma década depois.

A Quarta Geração (1980-): Computadores Pessoais e Estações de Trabalho


Com o desenvolvimento de circuitos integrados em larga escala (LSI), chips contendo
milhares de transistores em um centímetro quadrado de silício, surgiu a era dos computadores
pessoais e estações de trabalho. Em termos de arquitetura, estes não diferem dos
minicomputadores da classe do PDP-11, exceto no quesito mais importante: preço. Enquanto
os minicomputadores atendiam companhias e universidades, os computadores pessoais e
estações de trabalho passaram a atender usuários individualmente. O aumento do potencial
destas máquinas criou um vastíssimo mercado de software a elas dirigido. Como requisito
básico, estes produtos (tanto aplicativos quanto o próprio sistema operacional) necessitavam
ser amigáveis, visando usuários sem conhecimento aprofundado de computadores e sem

9
intenção de estudar muito para utilizá-los. Esta foi certamente a maior mudança em relação
ao OS/360 que era tão obscuro que diversos livros foram escritos sobre ele. Dois sistemas
operacionais tem dominado o mercado: MS-DOS (seguido do MS-Windows) para os
computadores pessoais e UNIX (com suas várias vertentes) para as estações de trabalho.

O próximo desenvolvimento no campo dos sistemas operacionais surgiu com a tecnologia de


redes de computadores: os sistemas operacionais de rede e distribuídos. Sistemas
operacionais de rede diferem dos sistemas operacionais para um simples processador no
tocante à capacidade de manipular recursos distribuídos pelos processadores da rede. Por
exemplo, um arquivo pode ser acessado por um usuário em um processador, mesmo que
fisicamente o arquivo se encontre em outro processador. Sistemas operacionais de rede
provêm ao usuário uma interface transparente de acesso a recursos compartilhados
(aplicativos, arquivos, impressoras, etc), sejam estes recursos locais ou remotos.

Sistemas operacionais distribuídos são muito mais complexos. Estes sistemas permitem que
os processadores cooperem em serviços intrínsecos de sistemas operacionais tais como
escalonamento de tarefas e paginação. Por exemplo, em um sistema operacional distribuído
uma tarefa pode imigrar durante sua execução de um computador sobrecarregado para outro
que apresente carga mais leve. Contrário aos sistemas operacionais de rede que são
largamente disponíveis comercialmente, sistemas operacionais distribuídos têm sua utilização
ainda restrita.

Tradicionalmente, os S.O. podem ser divididos, historicamente, em quatro gerações:

1ª. Geração: os programadores desenvolviam o programa e as funções que, atualmente, estão


sob a supervisão do S.O;

2ª. Geração: o sistema de processamento em lote, que constituía no armazenamento prévio de


diversos jobs para serem processados sequencialmente no computador, marcou esta geração.
Um job só iniciava seu processamento quanto o seu antecessor terminava;

3ª. Geração: desenvolvimento do conceito de multiprogramação, ou seja, a partição da


memória do computador em diversas parcelas para que múltiplos jobs pudessem ser
executados, dando a sensação para o usuário de um paralelismo não existente. Por exemplo,
enquanto um job esperava por uma operação de E/S (potencialmente mais demorada), a CPU
poderia realizar o processamento de outro job já armazenado na memória;

10
4ª. Geração: com o surgimento das estações de trabalho e dos computadores pessoais, o
desenvolvimento de interfaces gráficas se torna comum. As redes de computadores
impulsionam o surgimento de sistemas operacionais de rede e os sistemas operacionais
distribuídos.

11
Conclusão
Neste trabalho, conclui que um computador moderno é composto de vários subsistemas tais
como processadores, memorias, discos, terminais, fitas magnéticas, interfaces de rede,
impressoras, e outros dispositivos de E/S. Neste ponto de vista, o sistema operacional tem a
função de gerenciar de forma adequada estes recursos de sorte que as tarefas impostas pelos
usuários sejam atendidas da forma mais rápida e confiável possível. Um exemplo típico é o
compartilhamento da unidade central de processamento (CPU) entre as várias tarefas
(programas) em sistemas multiprogramados. O sistema operacional é o responsável pela
distribuição de forma otimizada da CPU entre as tarefas em execução.

Cada máquina virtual é isolada das demais o que proporciona segurança para cada VM. Isto
garante também confiabilidade pois uma VM não pode comprometer o estado das outras
VMs.
A desvantagem desta arquitetura é a grande complexidade. A camada de gerencia de
máquinas virtuais é responsável por compartilhas e gerenciar os recursos do hardware entre
as diversas VMS.

12
Bibliografia
 Andrew Tanenbaum. Modern Operating Systems. Massachusetts Addison-Wesley,
1984. ISBN 0-13-595752-4.
 Uresh Vahalia. UNIX Internals: The New Frontiers. Prentice Hall, Upper Saddle
River, New Jersey 07458, 1996. ISBN 0-13-101908-2.
 Maurice J. Bach. The Design of The UNIX Operating System. Prentice Hall
Software Series, Englewood Cliffs, New Jersey 07632, 1990. ISBN 0-13-201799-7.

13

Você também pode gostar