+ All Categories
Home > Documents > cap 1 Sistemas Operacionais Senai

cap 1 Sistemas Operacionais Senai

Date post: 29-Jun-2015
Category:
Upload: daniel-oliveira-galdino
View: 363 times
Download: 1 times
Share this document with a friend
25
1 – INTRODUÇÃO A SISTEMAS OPERACIONAIS ......................................... 2 HISTÓRICO DOS SISTEMAS OPERACIONAIS ................................................ 2 Primeira fase (1945-1955) ................................................................................................................................. 2 Segunda fase (1956-1965) ................................................................................................................................. 2 Terceira fase (1966-1980) .................................................................................................................................. 3 Quarta fase (1981-1990) .................................................................................................................................... 3 Quinta fase (1991-2005) .................................................................................................................................... 3 Sexta Fase (2006-????) ........................................................................................................................................ 3 O QUE É UM SISTEMA OPERACIONAL ................................................... 4 A DIVISÃO DO HARDWARE DE UM COMPUTADOR ............................................. 6 SISTEMAS OPERACIONAIS DE HOJE .................................................... 8 CTSS ..................................................................................................................................................................... 9 Multics ............................................................................................................................................................... 10 UNIX ................................................................................................................................................................... 10 CLASSIFICAÇÕES DE SISTEMAS OPERACIONAIS ............................................ 11 ARQUITETURA DE SISTEMAS OPERACIONAIS .............................................. 15 Componentes do SO ......................................................................................................................................... 15 Gerenciador de processos ........................................................ 15 Gerenciador de memória .......................................................... 16 Gerência de arquivos ............................................................ 16 Sistema de Entrada e Saída ...................................................... 16 Gerência de Armazenamento Secundário ............................................ 17 Redes ........................................................................... 17 Proteção ........................................................................ 17 Interpretador de comandos ....................................................... 17 Serviços do SO .................................................................................................................................................. 17 Execução de Programas ........................................................... 18 Operações de E/S ................................................................ 18 Manipulação do Sistema de Arquivos .............................................. 18 Comunicação ..................................................................... 18 Detecção de Erros ............................................................... 18 Alocação de Recursos ............................................................ 18 Contabilização .................................................................. 18 Proteção ........................................................................ 18 Chamadas de Sistema ..................................................................................................................................... 19 Tipos de chamadas de sistema .................................................... 19 Programas de Sistema ..................................................................................................................................... 19 Estrutura do sistema operacional ................................................................................................................... 20 Estrutura simples ............................................................... 20 Estrutura em camadas ............................................................ 20 Microkernel ..................................................................... 21 Máquina virtual ................................................................................................................................................ 21 Máquina virtual Java ............................................................ 21 TIPOS DE SISTEMAS OPERACIONAIS ................................................... 22 POSIX / UNIX-like .............................................................................................................................................. 22 Microsoft Windows ........................................................................................................................................... 23 Apple / Macintosh ............................................................................................................................................. 23 Amiga ................................................................................................................................................................ 23 Atari ST .............................................................................................................................................................. 23 Be-like ................................................................................................................................................................ 23 DOS .................................................................................................................................................................... 23 IBM .................................................................................................................................................................... 24 Digital / Compaq .............................................................................................................................................. 24 PDAs ................................................................................................................................................................... 24 Outros ................................................................................................................................................................ 24
Transcript
Page 1: cap 1 Sistemas Operacionais Senai

1 – INTRODUÇÃO A SISTEMAS OPERACIONAIS ........................................................................................ 2

HISTÓRICO DOS SISTEMAS OPERACIONAIS ....................................................................................................... 2 Primeira fase (1945-1955) ....................................................................................................................... 2 Segunda fase (1956-1965) ...................................................................................................................... 2 Terceira fase (1966-1980) ........................................................................................................................ 2 Quarta fase (1981-1990) .......................................................................................................................... 2 Quinta fase (1991-2005) .......................................................................................................................... 3 Sexta Fase (2006-????) .......................................................................................................................... 3

O QUE É UM SISTEMA OPERACIONAL ............................................................................................................... 3 A DIVISÃO DO HARDWARE DE UM COMPUTADOR ............................................................................................... 4 SISTEMAS OPERACIONAIS DE HOJE ................................................................................................................. 6

CTSS ....................................................................................................................................................... 7 Multics ...................................................................................................................................................... 7 UNIX ........................................................................................................................................................ 8

CLASSIFICAÇÕES DE SISTEMAS OPERACIONAIS ................................................................................................. 8 ARQUITETURA DE SISTEMAS OPERACIONAIS .................................................................................................. 11

Componentes do SO .............................................................................................................................. 11 Gerenciador de processos ................................................................................................................................... 11 Gerenciador de memória ...................................................................................................................................... 12 Gerência de arquivos ........................................................................................................................................... 12 Sistema de Entrada e Saída ................................................................................................................................. 12 Gerência de Armazenamento Secundário ........................................................................................................... 12 Redes ................................................................................................................................................................... 12 Proteção ............................................................................................................................................................... 13 Interpretador de comandos .................................................................................................................................. 13

Serviços do SO ...................................................................................................................................... 13 Execução de Programas ...................................................................................................................................... 13 Operações de E/S ................................................................................................................................................ 13 Manipulação do Sistema de Arquivos .................................................................................................................. 13 Comunicação ........................................................................................................................................................ 13 Detecção de Erros ................................................................................................................................................ 13 Alocação de Recursos .......................................................................................................................................... 14 Contabilização ...................................................................................................................................................... 14 Proteção ............................................................................................................................................................... 14

Chamadas de Sistema ........................................................................................................................... 14 Tipos de chamadas de sistema ............................................................................................................................ 14

Programas de Sistema ........................................................................................................................... 14 Estrutura do sistema operacional ........................................................................................................... 15

Estrutura simples .................................................................................................................................................. 15 Estrutura em camadas ......................................................................................................................................... 15 Microkernel ........................................................................................................................................................... 16

Máquina virtual ....................................................................................................................................... 16 Máquina virtual Java ............................................................................................................................................. 16

TIPOS DE SISTEMAS OPERACIONAIS .............................................................................................................. 16 POSIX / UNIX-like .................................................................................................................................. 16 Microsoft Windows ................................................................................................................................. 17 Apple / Macintosh ................................................................................................................................... 17 Amiga ..................................................................................................................................................... 17 Atari ST .................................................................................................................................................. 17 Be-like .................................................................................................................................................... 18 DOS ....................................................................................................................................................... 18 IBM ......................................................................................................................................................... 18 Digital / Compaq ..................................................................................................................................... 18 PDAs ...................................................................................................................................................... 18 Outros .................................................................................................................................................... 18

Page 2: cap 1 Sistemas Operacionais Senai

1 – Introdução a Sistemas Operacionais

Histórico dos sistemas operacionais

Faremos um breve resumo da história dos sistemas operacionais com objetivo ilustrativo, apenas para termos uma idéia da ordem cronológica de fatos importantes. A evolução do software dos computadores, especialmente os sistemas operacionais, está relacionada ao desenvolvimento de equipamentos cada vez mais velozes, menores no tamanho e com custo cada vez menor, e à necessidade de aproveitamento e controle desses recursos.

Primeira fase (1945-1955)- Computadores baseados em válvulas (ENIAC, criado para fins militares de cálculos

balísticos, com 18 mil válvulas, 30 toneladas, consumo de cerca de 140.000 watts; EDVAC, utilizado por universidades e também órgãos militares; UNIVAC I, criado para auxiliar no censo americano de 1950, aplicação comercial);

- Ausência de sistema operacional: programação feita por painéis, através de fios, sem uso de linguagens de programação.

Segunda fase (1956-1965)- Criação do transistor (maior velocidade e confiabilidade no processamento, menor

dissipação de energia) e das memórias magnéticas (acesso mais rápido aos dados, maior capacidade de armazenamento e diminuição do tamanho dos computadores);

- Surgimento das primeiras linguagens de programação (Assembly e Fortran) – os programas deixam de ser feitos diretamente no hardware;

- Seqüenciamento da execução dos programas, sem intervenção do operador, conhecido como processamento batch (em lote);

- Importantes avanços com a linha de computadores 7094 da IBM

Terceira fase (1966-1980)- Diminuição do tamanho e dos custos de aquisição do hardware com a criação dos circuitos

integrados (CIs) e, posteriormente, dos microprocessadores – lançamento da série 360 de computa-dores da IBM e da linha PDP-8 da DEC;

- Evolução dos processadores de E/S, possibilitando a utilização da técnica de compartilhamento da memória e do processador denominada multiprogramação;

- Substituição das fitas por discos magnéticos, possibilitando a alteração na ordem de submissão dos programas em lote (spooling);

- Surgimento em 1969 do sistema operacional UNIX.

Quarta fase (1981-1990)- Miniaturização e barateamento dos computadores através da integração cada vez maior

dos componentes; - Surgimento dos microcomputadores pessoais (PCs) e do sistema operacional DOS (Disk

Operating System);- Sistemas multiusuário e multitarefa, permitindo a execução de diversas tarefas de forma

concorrente;

2

Page 3: cap 1 Sistemas Operacionais Senai

- Equipamentos com múltiplos processadores, processadores vetoriais e diversas técnicas de paralelismo em diferente níveis (multiprocessamento);

- As redes de computadores se difundiram por todo mundo – software de redes intimamente relacionados ao sistema operacional e surgimento dos sistemas operacionais de rede.

Quinta fase (1991-2005)- Grandes avanços de hardware (microeletrônica), software e telecomunicações –

processadores e memórias cada vez menores e mais baratos;- Processamento distribuído em sistemas operacionais;- Novas interfaces homem/máquina – linguagens naturais, sons e imagens;- Sistemas multimídia, bancos de dados distribuídos e inteligência artificial.

Sexta Fase (2006-????)- Crescimento de novas tecnologias- Novas arquiteturas paralelas- Maior avanço em sistemas multimídia, bancos de dados distribuídos, inteligência artificial. - Processadores e sistemas operacionais voltados a sistemas embarcados O que é um

Sistema OperacionalSistema Operacional é um conjunto de ferramentas necessárias para que um computador possa ser utilizado de forma adequada. Consiste na camada intermediária entre o aplicativo e o hardware da máquina.Este conjunto é constituído por um Kernel, ou núcleo, e um conjunto de Software básicos, que executam operações simples, mas que juntos fazem uma grande diferença.Se não existissem sistemas desse tipo, todo software desenvolvido deveria “saber” se comunicar com os dispositivos do computador de que precisasse.Quando temos um Sistema Operacional, é ele quem precisa “saber” lidar com os dispositivos, “sabendo falar” com a placa de som, a internet, os disquetes... Assim, um software que seja feito para funcionar neste sistema não precisará de informações específicas do equipamento. Ao invés disso, ele chamará a função do kernel e o Sistema Operacional é que fará a comunicação, repassando os resultados.Cada Sistema Operacional pode ter uma linguagem de máquina própria e distinta. Por isso é comum que softwares feitos para um Sistema Operacional não funcionem em outro.Linguagem de máquina: Todo computador possui um conjunto de instruções que seu processador é capaz de executar. Essas instruções são representadas por seqüências de bits, normalmente limitadas pelo número de bits do registrador principal da CPU.Outras definições e funções para sistema operacional: Um programa que atua como um intermediário entre um usuário de um computador e o hardware do computador.

Um conjunto de programas indispensáveis ao funcionamento do computador e cuja função é servir de interface (ligação, elo) entre o homem e a máquina; fazer a comunicação entre o usuário, o computador e seus periféricos;

Um conjunto de rotinas executadas pelo processador, da mesma forma que os nossos programas. Controla o funcionamento do computador, como um gerente dos vários recursos disponíveis no sistema;

Metas de um SO:

Executar os programas dos usuários e fazer a solução de problemas mais fácil. Tornar o sistema de computação mais conveniente ao uso. Utilizar o hardware do computador de um modo eficiente.

3

Page 4: cap 1 Sistemas Operacionais Senai

FIGURA 1 – O que é um Sistema Operacional

Desta forma o sistema operacional facilita do acesso aos recursos do sistema, transparente para o usuário, e no caso de muitos usuários, proporciona compartilhamento de recursos de forma organizada e protegida. Algumas atividades que envolvem o sistema operacional:

leitura de um disquete (acionar a cabeça de leitura e gravação, posicionar trilha e setor, dados do disco para a memória);

quando um usuário solicita a execução de um programa, o sistema operacional deve alocar espaço na memória para carregar e acessar o programa.

Quais são as etapas anteriores à carga do sistema operacional em um microcomputador?

Quando o microcomputador é ligado, realiza o POST (Power On Self Test) que consiste em um conjunto de testes para determinar se o hardware está funcionando corretamente (verificação da RAM, vídeo e outros dispositivos; localização da unidade de disco de inicialização; etc.). Estes testes são realizados a partir do BIOS (Basic Input Output System, podendo variar conforme cada fabricante).

Se o BIOS for compatível com a tecnologia Plug and Play, algumas rotinas adicionais serão realizadas para reconhecimento dos dispositivos. Após a inicialização dos dispositivos, o computador localiza e lê o setor de inicialização, contendo o arquivo carregador, que será carregado para a memória principal e passará a controlar a carga do sistema operacional (boot).

A divisão do hardware de um computador

Para entendermos o funcionamento de um Sistema Operacional, devemos conhecer a divisão básica de um hardware. Os componentes do hardware de um computador são divididos em três grupos/subsistemas básicos:

4

Page 5: cap 1 Sistemas Operacionais Senai

1. Unidade Central de Processamento (UCP ou processador) – é o cérebro do computador, responsável pela execução de todos os programas armazenados na memória principal. A UCP é composta de várias partes:

ULA (Unidade Lógica e Aritmética) que realiza operações tais como adições e deslocamento, necessárias à execução das instruções;

UC (Unidade de Controle) que é responsável pela busca das instruções e determinação de seus tipos;

Registradores (PC, IR, MAR, MBR, SP e outros) que consistem em áreas de memória para armazenamento de resultados temporários e informações de controle. Dois registradores importantes são o Program Counter (PC), que guarda o endereço da próxima instrução a ser executada, e o Instruction Register (IR) que armazena a instrução que está sendo executada;

Clock é um dispositivo interno ao processador que gera pulsos elétricos síncronos em um determinado intervalo de tempo (sinal de clock). A quantidade de vezes que este pulso se repete em um segundo define a freqüência do clock, medida em Hertz. O sinal de clock é utilizado pela unidade de controle para a execução das instruções.

Cada programa é formado por uma seqüência de instruções que será executada pelo processador do computador. O próprio sistema operacional é conjunto de programas que devem ser executados pelo processador para controlar o funcionamento do próprio computador. A importância da execução desse conjunto de programas, porém, é evidente, pois sem isto os outros programas de usuário do computador não seriam executados.

2. Memória Principal (RAM) – É a parte do computador onde programas (instruções) e dados são armazenados, sendo composta por unidades de acesso chamadas células, sendo que:

- A célula é a menor unidade endereçável. A maioria dos fabricantes de computador padronizam a célula em 8bits de tamanho (byte). Bytes são agrupados em palavras; um computador com palavra de 16bitas tem 2bytes/palavra, enquanto que um computador com palavra de 32bits tem 4bytes/palavra. O significado de uma palavra é que a maioria das instruções operam em palavras inteiras, por exemplo, somando duas palavras. Então uma máquina de 16bits terá registradores de 16bits e instruções que manipulam palavras de 16bits;

- Todas as células em uma memória possuem o mesmo número de bits;- Cada célula da memória possui um endereço único; a quantidade de bits do endereço, que

nada tem haver com a quantidade de bits da célula, está relacionado ao número máximo de células endereçáveis. Por exemplo, com 16bits podemos endereçar 65536 combinações diferentes, ou seja, uma memória de 64K de capacidade de armazenamento.

Depois do processador, que é o componente que executa as instruções dos programas, a memória é o componente mais disputado pelos programas, uma vez que os programas devem estar carregados na memória principal para ser “enxergado” e executado pelo processador. Esta memória é classificada como volátil, ou seja, não tem capacidade de preservar o seu conteúdo sem uma fonte de alimentação. Por esse motivo devemos sempre gravar nossos programas/arquivos quando estes forma alterados e permanecem na memória principal.

O tempo de acesso aos dados contidos na memória principal pode ser agilizado quando se coloca no computador uma memória auxiliar, chamada memória cache. A memória cache é uma memória volátil de alta velocidade, localizada na placa-mãe do computador. O tempo de acesso a um dado nela contido é muito menor que se estivesse na memória principal. Toda vez que o processador faz referência a um dado armazenado na memória principal, ele “olha” antes na memória cache. Se o processador encontrar o dado na cache, não há necessidade do acesso à memória principal; do contrário, o acesso é obrigatório. Neste último caso, o processador, a partir

5

Page 6: cap 1 Sistemas Operacionais Senai

do dado referenciado, transfere um bloco de dados para o cache. O tempo de transferência entre as memórias é pequeno, se comparado com o aumento do desempenho obtido com a utilização desse tipo de memória. Existe também um outro nível de memória cache que é encontrado em alguns processadores da linha PC existentes no mercado, cujo funcionamento é semelhante, tendo velo-cidade de acesso ainda superior ao da memória cache da placa-mãe.

3. Dispositivos de Entrada/Saída – São os componentes que permitem a comunicação entre o computador e o mundo externo. Podem ser divididos em duas categorias:

- os que servem apenas de interface homem/máquina - através deles, o processador e a memória principal podem comunicar-se com os usuários (teclado, monitor, impressoras, scanner, caneta ótica, mouse). O desenvolvimento de interfaces cada vez mais amigáveis permite que as pessoas sem conhecimento específico sobre informática possam fazer uso de computadores;

- aqueles destinados ao armazenamento de programas e dados (discos e fitas magnéticas), chamados de memórias secundárias. Seu custo é relativamente baixo, porém o tempo de acesso é maior quanto comparado ao tempo de acesso à memória principal ou mesmo à memória cache.

Não podemos esquecer que a UCP, a memória principal e os dispositivos de E/S encontra-se interligados fisicamente através de linhas de comunicação denominadas barramento. Um barra-mento (bus) pode ser visto como um conjunto de fios paralelos, onde trafegam informações.

Sistemas Operacionais de Hoje

No início da computação os primeiros "sistemas operacionais" eram únicos, pois cada mainframe vendido necessitava de um sistema operacional específico. Este problema era resultado de arquiteturas diferentes e da linguagem utilizada, no caso assembly (linguagem de baixo nível). Após essa fase, iniciou-se a pesquisa de sistemas operacionais que automatizassem a troca de jobs (tarefas), pois os sistemas eram mono-usuário e tinham cartões perfurados como entradas (eliminando, assim, o trabalho de pessoas que eram contratadas apenas para trocar os cartões perfurados). Um dos primeiros sistemas operacionais foi o CTSS, desenvolvido no MIT. Outro que na época revolucionou o conceito de sistema operacional foi o Multics, desenvolvido nos laboratórios da AT&T. Os sistemas operacionais eram geralmente programados em assembly, até mesmo o UNIX em seu início. Após poucas versões, o UNIX começou a ser desenvolvido através de uma nova linguagem (a Linguagem C) e teve em seus princípios muitas inovações do Multics. O UNIX criou um ecossistema de versões e inovações, entre estes, destacam-se: System V e derivados - família BSD (FreeBSD, NetBSD, OpenBSD, etc..), Linux (e derivados), HP-UX, AIX, e até o Mac OS X (que é uma variante dos BSDs).Na década de 70, quando começaram a aparecer os computadores pessoais, houve a necessidade de um sistema operacional de utilização mais fácil. Em 1980, William (Bill) Gates e seu colega de faculdade, Paul Allen, fundadores da Microsoft, compram o sistema QDOS ("Quick and Dirty Operating System") de Tim Paterson por $50.000, batizam-no de DOS (Disk Operating System) e venderam licenças à IBM. O DOS vendeu muitas cópias, como o sistema operacional padrão para os computadores pessoais desenvolvidos pela IBM.

6

Page 7: cap 1 Sistemas Operacionais Senai

No começo da década de 1990, um estudante de computação finlandês postou um comentário numa lista de discussão dizendo que estava desenvolvendo um kernel de sistema operacional e perguntou se alguém gostaria de auxiliá-lo na tarefa. Este estudante chamava-se Linus Torvalds e o primeiro passo em direção ao tão conhecido Linux foi dado naquele momento.

Um mainframe é um computador de grande porte, dedicado normalmente ao processamento de um volume grande de informações. Os mainframes são capazes de oferecer serviços de processamento a milhares de usuários através de milhares de terminais conectados diretamente ou através de uma rede. (O termo mainframe se refere ao gabinete principal que alojava a unidade central de processamento nos primeiros computadores.).

O Massachusetts Institute of Technology, mais conhecido pela sua sigla MIT, é um centro universitário de educação e pesquisa localizado em Cambridge, nos EUA. O MIT é um dos líderes mundiais em ciência e tecnologia, bem como outros campos, como administração, economia, lingüística, ciência política e filosofia.

AT&T (Abreviação em inglês para American Telephone and Telegraph) Corporation é uma companhia estadounidense de telecomunicações. AT&T provê serviços de telecomunicação de voz, vídeo, dados e Internet para empresas, particulares e agência governamentais. Durante sua longa história, AT&T foi a maior companhia telefônica e o maior operador de televisão por cabo do mundo, constituindo por vezes um monopólio.

CTSS

CTSS é a sigla para Compatible Time-Sharing System (Sistema compatível de divisão por tempo) CTSS foi escrito por um time do Centro Computacional do MIT, liderado pelo Prof. Fernando J. Corbató, conhecido por todos como Corby. Muito da pesquisa do CTSS foi patrocinada pela Fundação Nacional de Ciência dos Estados Unidos (US National Science Foundation)A versão do CTSS que foi disponibilizada para usuários foi demonstrada no IBM 7090 no MIT em novembro de 1961. O CTSS foi descrito como um Sistema de compatilhamento no tempo experimental, por Fernando J. Corbató, Marjorie Merwin Daggett e Robert C. Daley na primavera de 1962 durante uma conferência intitulada Spring Joint Computer Conference. Na época, o software ainda não estava funcionando bem no IBM 7090.Em 1963, O CTSS já funcionava bem e era suportado pelo hardware RPQs no IBM 7090, e pesquisadores de computadores por todo os Estados Unidos usavam o CTSS para computação interativa.

Multics

O Multics (Multiplexed Information and Computing Service) era um sistema modular montado em uma bancada de processadores, memórias e equipamentos de comunicação de alta velocidade. Pelo desenho, partes do computador poderiam ser desligadas para manutenção sem que outras partes ou usuários fossem afetados. O objetivo era prover serviço 24 horas por dia 365 dias por ano - um computador que poderia ser tornado mais rápido adicionando mais partes.

7

Page 8: cap 1 Sistemas Operacionais Senai

UNIX

UNIX é um sistema operacional multitarefa e multiusuário originalmente criado por um grupo de programadores da AT&T e dos Bell Labs, que incluem Ken Thompson, Dennis Ritchie e Douglas McIlroy.

Em 1969 Thomson escreveu o primeiro sistema UNIX totalmente em assembly e destinado a funcionar em máquinas PDP-7, com objetivo de criar um sistema operacional, de respostas rápidas, com os mesmos conceitos do OS Multics (que ele ajudou a desenvolver), mas que pudesse ser rodado em computadores de pequeno porte como o PDP-7. Mais tarde Ken Thompson e Dennis Ritchie reescreveram ainda em assembly o UNIX para as plataformas PDP-11 e PDP-20. Apenas no início da década de 1970 o UNIX passou a ser desenvolvido usando exclusivamente a nova linguagem C (criada também por Ritchie nessa época) e começou a tornar forma semelhante à que possui atualmente e a tornar-se portátil através de várias plataformas. Finalmente, ao longo dos anos 70 e 80 foram sendo desenvolvidas as primeiras distribuições de grande dimensão como os sistemas BSD (na Universidade de Berkeley na Califórnia) e os System III e System V (nos Bell Labs).

Atualmente, UNIX (ou *NIX) é o nome dado a uma grande família de Sistemas Operacionais que partilham muitos dos conceitos dos Sistemas UNIX originais, sendo todos eles desenvolvidos em torno de standards como o POSIX (Portable Operating System Interface) e outros. Alguns dos Sistemas Operacionais UNIX atuais são: BSD (FreeBSD, OpenBSD e NetBSD), Solaris (anteriormente conhecido por SunOS), IRIX, AIX, HP-UX, Tru64, Linux (nas suas milhares de distribuições), e até o Mac OS X (baseado num kernel Mach BSD chamado Darwin).

Classificações de sistemas operacionais

Os sistemas operacionais podem ser classificados sob três pontos de vista diferentes:

1) Do ponto de vista do número de usuários que utilizam o sistema, podemos ter um sistema operacional:

monousuário – apenas um e só um usuário trabalha de cada vez. Ex.: DOS, Windows 95/98.

multiusuário – permite o uso da máquina por vários usuários ao mesmo tempo, ou seja, cada usuário pode executar um ou mais programas simultaneamente. Ex.: Unix, Linux, Windows XP.

2) Dependendo da forma como os programas são executados, de forma seqüencial ou concorrente, os sistemas operacionais podem ser classificados como:

monoprogramado ou monotarefa - o sistema operacional só tem capacidade de controlar e gerenciar um programa de cada vez. São de simples implementação, se comparados a outros sistemas, não havendo muita preocupação com problemas de proteção, pois só existe um usuário/programa utilizando-o. Exemplos:

o Estão tipicamente relacionados ao surgimento dos mainframes e a introdução dos computadores pessoais e estações de trabalho

8

Page 9: cap 1 Sistemas Operacionais Senai

o O sistema DOS pode ser considerado um sistema monoprogramado com algumas características especiais; os programas TSR (Terminate and Stay Resident) têm a capacidade guardar o contexto do que estava sendo executado, desviando o fluxo original de execução, ou seja, pode haver um número arbitrário de processos na memória, mas somente um deles pode estar ativo; apesar de suportar a existência simultânea de vários processos, ele não é um sistema multiprogramando.

Sistema multiprogramado ou multitarefa - Os recursos da máquina são alocados de modo dinâmico entre o número de programas ativos de acordo com o nível de prioridade ou o estágio de execução de cada um dos programas. O sistema operacional gerencia o acesso concorrente aos seus diversos recursos, de forma ordenada e protegida, pelos diversos programas. Dessa forma é possível aumentar a produtividade e reduzir os custos de utilização do sistema, aproveitando melhor o hardware. Por exemplo, enquanto um programa espera por uma operação de leitura ou gravação em disco, outros programas podem estar sendo processados no mesmo intervalo de tempo. São mais complexos e eficientes do que os sistemas monoprogramados, já que vários programas utilizam os mesmos recursos. Resumindo, o Sistema Operacional pode controlar e gerenciar mais de um programa em execução ao mesmo tempo. Podem ser classificados pela forma com que suas aplicações são gerenciadas/interação com os usuários, sendo que um sistema operacional pode suportar um ou mais desses tipos de processamento:

o BATCH (LOTE) - Os programas quando executados são armazenados em disco ou fita, onde esperam para serem ‘atendidos’. Normalmente, os programas (jobs ou tarefas) que são executados nesses sistemas não exigem interação com os usuários (por exemplo, compilações e linkedições);

o TIME-SHARING (TEMPO-COMPARTILHADO) - O sistema operacional aloca uma ‘fatia de tempo’ (time-slice) do processador para cada usuário. Caso o programa do usuário não esteja concluído nesse intervalo de tempo, ele é substituído por um de outro usuário, e fica esperando por uma nova fatia de tempo. Permitem a interação dos usuários com o sistema;

o REAL-TIME (TEMPO-REAL) - Semelhante ao time-sharing, sendo a maior diferença o tempo de resposta exigido na execução. Enquanto em sistemas de tempo compartilhado o tempo de resposta pode variar sem comprometer as aplicações em execução, nos sistemas de tempo real os tempos de resposta devem estar dentro de limites rígidos. Não existe a i-déia de fatia de tempo, um programa executa o tempo que for necessário, ou até que apareça outro prioritário em função de sua importância. Essa importância ou prioridade de execução é controlada pela própria aplicação e não pelo sistema operacional, como acontece no sistema de tempo-compartilhado. Esse tipo de sistema está normalmente presente em controle de processos, como no monitoramento de refinarias de petróleo, controle de tráfego aéreo, usinas termoelétricas e nucleares, ou em qualquer aplicação onde a segurança é fator fundamental.

Ex.: Windows 95/98/XP/NT/2003, OS/2, UNIX e LINUX, entre outros.

3) Do ponto de vista do número de processadores, podemos ter:

Sistema Operacional Monoprocessado – O SO controla e gerencia apenas um processador. Ex.: Windows 95/98, DOS, Windows XP Home Edition.Um sistema monoprocessado (diferente de Sistema Operacional Monoprocessado) caracteriza-se por possuir um único processador, sendo este controlado pelo sistema operacional instalado. Ex.: Microcomputador PC com Windows 98.

Sistema Operacional Multiprocessado – O SO pode controlar e gerenciar dois ou mais processadores ao mesmo tempo. Ex.: Windows XP Professional, Linux...Um sistema multiprocessado (diferente de Sistema Operacional Multiprocessado) caracteriza-se por possuir mais de um processador, sendo que estes podem compartilhar

9

Page 10: cap 1 Sistemas Operacionais Senai

o mesmo sistema operacional, ou cada um pode possuir o seu próprio sistema. 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 por mais de um processador. Sistemas com múltiplos processadores possibilitam aumentar a capacidade computacional com menor custo (escalabilidade), além de permitirem a reconfiguração e o balanceamento do sistema. A reconfiguração é a capacidade de um sistema poder continuar o processamento, mesmo se um dos processadores falhar ou parar de funcionar, embora com menor capacidade de computação. O balanceamento possibilita distribuir a carga de processamento entre os diversos sistemas da configuração, melhorando o desempenho como um todo. O multiprocessamento mantém todos os conceitos de multiprogramação, só que aplicados a vários processadores. Com o multiprocessamento, novos problemas de concorrência foram surgindo, pois vários processadores podem estar acessando as mesmas áreas de memória, além da dificuldade de interligação eficiente dos processadores, memória e periféricos. Para o desenvolvimento de sistemas operacionais com múltiplos processadores é importante que se conheça a forma de comunicação entre esses processadores e o grau de compartilhamento da memória principal e dos dispositivos de E/S. Em função desses fatores, podemos classificar os sistemas em:

o fortemente acoplados – dois ou mais processadores (multiprocessadores) compartilhando uma única memória e controlados por apenas um único sistema operacional. Podem ser divididos conforme a simetria existente entre os processadores, ou seja, se todos os processadores podem executar ou não as mesmas funções:

nos sistemas assimétricos ou mestre/escravo somente um processador (mestre) pode executar serviços do sistema operacional, como realizar operações de E/S. Sempre que um processador do tipo escravo precisar realizar uma operação de E/S, terá que requisitar o serviço ao processador mestre;

nos sistemas simétricos (SMP – Simmetric MultiProcessing) todos os processadores realizam as mesmas funções, ficando a cargo de um único processador algumas poucas funções, como, por exemplo, a inicialização (boot). Ex.: microcomputadores PC com vários processadores que servem de servidores de redes departamentais com sistema operacional Windows NT, que implementa SMP;

o fracamente acoplados – caracterizam-se por possuir dois ou mais processadores (multicomputadores), conectados através de linhas de comunicação, onde cada um desses sistemas funciona de forma independente, possuindo seu(s) próprio(s) processador(es), memória principal e dispositivos de E/S. Em uma rede multicomputadores, onde existem dois um mais sistemas independentes, também chamados de nós, hosts ou estações, podemos classificar os sistemas como sendo:

Sistemas operacionais de redes – cada nó possui seu próprio SO, além de hardware e software que possibilitam ao sistema ter acesso o outros nós da rede. Cada nó é totalmente in-dependente um do outro, podendo inclusive possuir sistemas operacionais diferentes. Os sistemas operacionais de redes permitem copia de arquivos, impressão e até gerência re-motas, além de serviços de correio eletrônico, emulação de terminais. A idéia é prover o compartilhamento de recursos e troca de informações. Ex.: Redes locais

Sistemas operacionais distribuídos – cada nó também possui seu próprio sistema operacional, memória principal, processador e dispositivos de E/S. Porém, existe um “relacionamento” mais forte entre esses nós, que, geralmente, possuem o mesmo SO. Para o usuário e suas aplicações, o conjunto de computadores é “visto” como um único sistema, como se não existisse uma rede de computadores. A grande vantagem é a possibilidade do balance-amento de carga, ou seja, quando um programa é admitido para

10

Page 11: cap 1 Sistemas Operacionais Senai

execução, o sistema escolha o nó que está com menor carga de processamento e este vai executá-lo. Também é permitido o compartilhamento de recursos independentemente do computador em que a aplicação estiver sendo executado. Esse tipo de sistema distribuído é muitas vezes chamado de cluster. Ex.: Rede de computadores com sistema operacional UNIX SOLARIS da SUN.

FIGURA 2 – Classificação dos Sistemas Operacionais

Arquitetura de Sistemas Operacionais

Componentes do SO

Gerenciador de processosEm uma definição geral, um processo é um programa em execução (um compilador, um processador de textos, etc). Cada processo precisa de certos recursos para ser executado (CPU,

11

SISTEMAS

OPERACIONAIS

MONOPROGRAMADOS / MONOTAREFA

MULTIPROGRAMADOS / MULTITAREFA

MONOPROCESSADOS

MULTIPROCESSADOS

FORTEMENTE ACOPLADOS

FRACAMENTE ACOPLADOS

BATCHTIME-

SHARING REAL-TIME

Tipos de processamento:

Comunicação entre UCP’s e

compartilhamento de memória

principal e dispositivos de

E/S:

SIMÉTRICOS

ASSIMÉTRICOS

S.O. DE REDES SISTEMAS

DISTRIBUÍDOSMONOUSUÁRIOS

MULTIUSUÁRIOS

Page 12: cap 1 Sistemas Operacionais Senai

Memória, Arquivos e Dispositivos de E/S). O processo é a unidade de trabalho de um sistema de computação e tais sistemas possuem processos do SO e do usuário sendo executados. As funções do SO com relação aos processos são: criar, excluir, suspender e retomar processos; fornecer mecanismos para sincronização e comunicação entre os processos; tratar deadlocks.

Gerenciador de memóriaPara que um programa seja executado, ele precisa ser carregado na memória e ser mapeado com endereços de memória absolutos. Conforme ele é executado, fará referência a estes endereços e por fim, quando termina, a memória alocada para ele deve ser liberada. Para fazer uso eficiente do sistema, diversos processos devem ser carregados na memória para execução. Há várias formas de fazer isso dependendo de diversos fatores (inclusive suporte do hardware).

Funções do SO com relação à memória: manter uma relação de quais partes da memória estão sendo usadas e por quais processos, decidir quais processos devem ser carregados na memória se houver espaço, alocar e desalocar espaço, conforme necessário.

Gerência de arquivosOs dispositivos de armazenamento possuem uma série de propriedades particulares (velocidade e método de acesso, taxa de transferência, etc). A função da gerência de arquivos do SO é prover um meio lógico e uniforme, para que os processos e usuários possam lidar mais facilmente com tais particularidades. O conceito de arquivo (e o sistema de diretórios) é uma forma de mapear as unidades físicas para conceitos lógicos que tornam seu uso mais fácil. Ainda é função do SO controlar os direitos de acesso a tais arquivos.

Funções do sistema de arquivos: criar, excluir e fornecer outros meios de manipular arquivos e diretórios; mapear arquivos nos meios de armazenamento secundários; permitir um meio de se fazer backup dos arquivos e meios não-voláteis.

Sistema de Entrada e SaídaÉ função do SO esconder as peculiaridades dos dispositivos de E/S. O subsistema de E/S consiste em: um componente da gerência de memória responsável por buffering, cache e spooling; uma interface geral de drivers; os drivers específicos para cada dispositivo.

Gerência de Armazenamento SecundárioComo a memória principal é volátil (e limitada) é preciso uma forma de armazenar permanentemente arquivos de dados e de programas. A gerência de armazenamento secundário é responsável por: gerenciar espaço livre, alocar espaço, escalonar o acesso ao disco.

RedesOs computadores podem ser ligados em redes de diversos níveis de complexidade e é função do módulo de redes de um SO, permitir que os sistemas se comuniquem e que o processamento seja distribuído adequadamente.

12

Page 13: cap 1 Sistemas Operacionais Senai

ProteçãoEm um sistema onde vários usuários e processos podem trabalhar simultaneamente, deve-se garantir que um não interfira na operação do outro, protegendo-se o espaço de memória, evitando que um processo controle a CPU indefinidamente e controlando o acesso aos diversos recursos, permitindo-se que somente os usuários autorizados façam uso dos mesmos.

Interpretador de comandosÉ um dos módulos mais importantes, chegando a definir a "aparência" do sistema para o usuário final. O interpretador de comandos (ou shell) pode ser uma parte do próprio núcleo do sistema operacional, ou um processo separado. Sua função é receber comandos do usuário, que definem o que deve ser feito pelo SO para cumprir uma determinada tarefa. A forma como ele funciona, pode variar desde um programa que lê uma série de informações de controle de jobs a partir da entrada; passando por um complexo sistema onde se digita comandos com parâmetros em um prompt; até um sistema completamente gráfico, onde se utiliza um dispositivo apontador para tratar dos processos, arquivos e demais recursos, que são todos representados graficamente como "ícones" e "janelas".

Serviços do SO

Execução de ProgramasCarregar o programa na memória, executar e encerrar sua execução (possivelmente, podendo indicar algum erro).

Operações de E/SAcesso a arquivos ou dispositivos de E/S que não podem ser acessados diretamente pelos usuários e processos (por questões de segurança e eficiência).

Manipulação do Sistema de ArquivosCriar, excluir, ler e gravar arquivos.

ComunicaçãoTroca de mensagem entre processos ou memória compartilhada.

Detecção de ErrosO SO deve detectar e tratar adequadamente os erros de hardware, memória, nos dispositivos, nos programas de usuário, etc.

13

Page 14: cap 1 Sistemas Operacionais Senai

Alocação de RecursosEm sistemas com múltiplos usuários e processos, é preciso controlar quem vai acessar cada recurso e reservá-lo, para que outros processos e usuários não interfiram na sua execução.

ContabilizaçãoRegistrar os recursos que são utilizados por usuário é importante para contabilização ou mesmo para fornecer estatísticas a serem usadas para otimizar o sistema.

ProteçãoEvitar que processos interfiram na execução um do outro, assim como o acesso não autorizado ao sistema ou recursos do mesmo.

Chamadas de Sistema

Chamada de Sistema é o mecanismo pelo qual os processos de usuário tem acesso aos serviços do SO. Em geral são implementadas na forma de instruções em linguagem assembly, mas comumente podem ser acessadas através de linguagens de alto nível (C, C++, Perl, Delphi, etc). A maior parte da complexidade do uso das chamadas de sistema está "escondida" nas rotinas das bibliotecas de sistema, sendo que a maior parte dos usuários e programadores jamais fará uso direto delas.

Tipos de chamadas de sistema

Controle de processos: criar, carregar, executar e terminar; pegar e alterar atributos; sinalizar ou esperar um evento; alocar e liberar memória.

Manipulação de arquivos: criar, apagar, abrir, fechar, ler e gravar; pegar e alterar atributos do arquivo.

Manipulação de dispositivos: reservar e liberar dispositivos; ler, gravar e reposicionar; conectar ou desconectar logicamente.

Manutenção de informações: ler e alterar informações como data e hora, dados do sistema, atributos de processos, arquivos e dispositivos.

Comunicação: criar e apagar conexões de comunicação; enviar e receber mensagens e informações de status; conectar ou desconectar dispositivos remotos.

Programas de Sistema

14

Page 15: cap 1 Sistemas Operacionais Senai

Um sistema de computação é formado por hardware, sistema operacional, programas de sistema, e aplicativos do usuário. Os programas de sistema fornecem um ambiente conveniente para o desenvolvimento e execução de programas.

Categorias

Gerência de arquivos: criar, excluir, copiar, renomear, imprimir, listar e manipular arquivos e diretórios.

Informações de status: programas que pedem ao sistema informações gerais e as exibem, tais como: data, hora, quantidade de memória e espaço em disco, usuários, etc.

Modificação de arquivo: diversos tipos de editores de texto.

Suporte à linguagem de programação: compiladores, montadores e interpretadores para linguagens de programação. A maior parte destes programas agora são distribuídos separadamente, geralmente de forma paga.

Carregamento e execução de programas: utilitários de carga, linkeditores, sistemas de depuração (alto nível e linguagem de máquina).

Comunicação: programas para criar conexões remotas com processos em outros computadores. Exemplos: FTP, navegadores Web, correio eletrônico, etc.

Estrutura do sistema operacional

Estrutura simplesSistemas que não possuem uma estrutura bem definida, sendo que os diversos módulos do kernel estão "misturados" num único programa. Em sistemas com o MS-DOS, nem mesmo o hardware era separado dos programas de usuário, sendo que os programas poderiam ter acesso direto aos dispositivos do sistema. O Unix original sofria de problemas semelhantes devido à falta de suporte de hardware, que foi implementado depois, permitindo um melhor controle do SO sobre a máquina.

Estrutura em camadasUma das formas de modularizar um sistema é através de camadas, sendo que cada uma é construída sobre as outras e possui níveis de acesso diferentes. As camadas inferiores são construídas de forma a prover serviços convenientes às camadas acima. As camadas superiores fazem uso das camadas mais baixas, sem nem precisar "saber" como os serviços são implementados. Neste tipo de projeto a implementação e depuração do sistema é mais simples. No entanto, alguns problemas surgem como performance reduzida e dificuldade ao definir as funções das camadas.

15

Page 16: cap 1 Sistemas Operacionais Senai

MicrokernelNo modelo de microkernel, todos os serviços não-essenciais do sistema operacional são removidos do kernel e passam a ser executados no modo usuário. O microkernel faz então apenas o controle de processos e memória, sendo que outros serviços como sistema de arquivo, entrada e saída, etc, são executados por processos do SO que executam com privilégio de usuário. As vantagens são que o sistema é mais fácil de expandir (um novo módulo pode ser acrescentado sem alterar o kernel), mais robusto (uma falha em algum módulo não resultará numa pane geral, já que apenas o microkernel roda em modo protegido) e facilidade ao portar para outros sistemas (já que apenas o kernel precisa ser adaptado na maioria dos casos).

Máquina virtual

Num modelo de máquina virtual, a abordagem em camadas é levada ao extremo. O SO de máquina virtual usa técnicas de escalonamento de CPU e memória virtual para simular diversas "instâncias" de máquinas virtuais. Cada uma delas é uma cópia exata do Hardware original, sendo que os programas podem ser executados como se estivessem rodando no próprio hardware. É possível inclusive executar Sistemas Operacionais diferentes e cada uma das máquinas virtuais, sendo que cada uma está totalmente isolada das outras.

Máquina virtual JavaJava é uma tecnologia e não apenas uma linguagem de programação. Ela fornece três itens: a linguagem de programação, a interface de programação de aplicações (API), a máquina virtual Java.

A máquina virtual Java consiste num computador abstrato sobre os quais são executados os programas criados na linguagem Java e compilados em "bytecode" que são os códigos (instruções) para essa máquina virtual. A máquina virtual então "interpreta" este código, executando o programa. A vantagem deste modelo é que a máquina virtual torna os programas totalmente independentes de hardware, pois uma determinada aplicação, uma vez compilada, pode rodar em qualquer máquina virtual Java, não importa em que arquitetura. Os detalhes dependentes da máquina e do sistema operacional são tratados por cada implementação da máquina virtual Java.

Tipos de Sistemas Operacionais

POSIX / UNIX-likeo AIX

o BSD

4.4BSD

386BSD

FreeBSD

OpenBSD

NetBSD

NeXTSTEP

BSDI (BSD/OS)

Darwin

o Cromix

o GNU/Hurd16

Page 17: cap 1 Sistemas Operacionais Senai

o Minix

o GNU/Linux (Linux)

Conectiva (Mandriva)

Debian

Knoppix

Kurumin

Kalango

Famelix

Mandrake (Mandriva)

RedHat

Fedora Core

Slackware

SuSE

Ubuntu Linux

Caixa Mágica

Outras Distribuições

o System V

HP-UX

IRIX

OSF/1

OS-9

POSYS

QNX

Solaris

SunOS

SCO-UNIX

Tropix

Tru64

Digital UNIX]

Ultrix

UniCOS

UNIflex

Xenix

z/OS

Microsoft Windowso MS-DOS

o Windows

Windows 386

Windows 2.x

Windows 3.x

Windows 95

Windows 98

Windows ME

o Windows CE

o Windows NT

Windows NT 3.5

Windows NT 4

Windows 2000

Windows XP

Windows Starter Edition

Windows Media Center

Windows Pc Table

Windows for PDA

Windows Server 2003

Windows Vista (Codename Longhorn)

Apple / Macintosho Apple DOS

o Mac OS

o Mac OS X (Darwin)

o ProDOS

Amigao AmigaOS

o AROS

o MorphOS

Atari STo TOS o MultiTOS

17

Page 18: cap 1 Sistemas Operacionais Senai

o MiNT

Be-likeo BeOS

o BeIA

o BlueEyedOS

o OpenBeOS

o Zeta

DOSo DR-DOS

o FreeDOS

o MS-DOS

o PC-DOS

o VirtuOS

o Sisne

o SO16

o QDOS

IBMo AIX

o OS/2

o OS/360

o OS/390

o OS/400

o VM/CMS

o DOS/VSE

o MFT

o MVT

o SVS

o MVS

o TPF

o ALCS

Digital / Compaqo AIS

o OS-8

o RSTS/E

o RSX

o RT-11

o TOPS-10

o TOPS-20

o VMS (OpenVMS)

PDAso EPOC

o Palm OS

o Pocket PC

o SymbianOS

o Windows CE

Outros

18


Recommended