Apostila de: Gestão de Sistemas Operacionais – I ( G.S.O – I )

Propaganda
G.S.O – I – Gestão de Sistemas Operacionais I
Apostila de:
Gestão de Sistemas Operacionais – I
( G.S.O – I )
Prof. Cássio Mendes Baraky
Email: [email protected]
_Copyright (c) 2008 CÁSSIO MENDES BARAKY. É garantida a permissão para
copiar, distribuir e/ou modificar este documento sob os termos da Licença de
Documentação Livre GNU (GNU Free Documentation License), Versão 1.2 ou
qualquer versão posterior publicada pela Free Software Foundation. A licença está
disponível em http://www.gnu.org/licenses/gfdl.txt.
Prof. Cássio M. Baraky
Email.: [email protected]
G.S.O – I – Gestão de Sistemas Operacionais I
1
2
3
4
5
6
Conceitos Básicos do Computador ........................................................................ 4
As unidades de informação: bit e byte ................................................................... 6
2.1
Por que 1 Kb equivale a 1024 bytes? ............................................................. 6
Fases Históricas da Computação ........................................................................... 7
3.1
Primeira Fase (1945-1955) ............................................................................ 7
3.2
Segunda Fase (1956-1965) ............................................................................ 7
3.3
Terceira Fase (1966-1980)............................................................................. 9
3.4
Quarta Fase (1981-1990) ............................................................................. 10
3.5
Quinta Fase (1991- ).................................................................................... 10
3.6
Tabela de Características de cada Fase......................................................... 12
Histórico dos sistemas operacionais..................................................................... 14
Sistemas Operacionais......................................................................................... 16
5.1
O que é um sistema operacional? ................................................................. 16
5.2
Tipos de sistemas operacionais .................................................................... 16
5.2.1
Sistema operacional em lote (Batch) .................................................... 16
5.2.2
Sistema de tempo compartilhado.......................................................... 16
5.2.3
Sistemas de computadores pessoais (Desktop) ..................................... 17
5.2.4
Sistemas paralelos................................................................................ 17
5.2.5
Sistema de tempo real .......................................................................... 17
5.2.6
Sistemas distribuídos ........................................................................... 18
5.2.7
Sistemas Multi-usuário ........................................................................ 18
5.2.8
Sistemas de servidor ............................................................................ 18
5.2.9
Sistemas embutidos (embarcados)........................................................ 19
5.3
Funcionalidades do sistema operacional ...................................................... 19
5.3.1
Gerência do processador ...................................................................... 19
5.3.2
Gerência de memória ........................................................................... 19
5.3.3
Gerência de dispositivos ...................................................................... 19
5.3.4
Gerência de arquivos ........................................................................... 20
5.3.5
Gerência de proteção ........................................................................... 20
5.4
Estrutura de um sistema operacional............................................................ 21
5.4.1
Núcleo ................................................................................................. 21
5.4.2
Drivers................................................................................................. 22
5.4.3
Código de inicialização........................................................................ 22
5.4.4
Programas utilitários ............................................................................ 22
5.5
Gerência de tarefas ...................................................................................... 23
5.6
O conceito de tarefa..................................................................................... 23
5.7
A gerência de tarefas ................................................................................... 25
Sistema Operacional MS-DOS ............................................................................ 29
6.1
HISTÓRIA DO MS-DOS ............................................................................ 29
6.1.1
O IBM PC............................................................................................ 29
6.2
Eecutando os comandos do MS-DOS .......................................................... 31
6.2.1
Comandos internos do MS-DOS ......................................................... 32
6.2.1.1 Comando DATE .............................................................................. 32
6.2.1.2 Comando TIME ............................................................................... 32
6.2.1.3 Comando VER................................................................................. 32
6.2.1.4 Comando CLS ................................................................................. 33
6.2.1.5 Comando MEM ............................................................................... 33
6.2.1.6 Comando Dir ................................................................................... 34
Prof. Cássio M. Baraky
Email.: [email protected]
G.S.O – I – Gestão de Sistemas Operacionais I
6.2.1.7 Comando para mudar a unidade de trabalho ..................................... 35
6.2.1.8 Comandos de diretório ..................................................................... 36
6.2.1.8.1 Comando MKDIR ou MD.......................................................... 36
6.2.1.8.2 Comando CHDIR ou CD............................................................ 36
6.2.1.8.3 Comando RD ou RMDIR........................................................... 36
6.2.1.9 Comando TYPE............................................................................... 37
6.2.1.10
Comando MORE ......................................................................... 37
6.2.1.11
Comando COPY .......................................................................... 37
6.2.2
Comandos externos do MS-DOS ......................................................... 38
6.2.2.1 Comando DISKCOPY ..................................................................... 38
6.2.2.2 Comando XCOPY ........................................................................... 39
6.2.2.3 Comando ATTRIB........................................................................... 39
6.2.2.4 Comando TREE............................................................................... 39
6.2.2.5 Comando MOVE ............................................................................. 40
6.2.3
Formatando disquetes e Discos Rígidos, apagando arquivos, e diretórios
com conteúdo dentro. .......................................................................................... 41
6.2.3.1 Comando FORMAT ........................................................................ 41
6.2.3.2 Comando DEL ou ERASE ............................................................... 41
6.2.3.3 Comando TREE............................................................................... 42
7
Arquivo .BAT ( LOTE / BATCH)....................................................................... 43
7.1
Para que serve um arquivo .BAT?................................................................ 43
7.2
Comandos de arquivos .BAT ....................................................................... 43
7.2.1
Comando ECHO.................................................................................. 43
7.2.2
Comando GOTO.................................................................................. 43
7.2.3
Comando CALL .................................................................................. 43
7.2.4
Comando START ................................................................................ 44
7.2.5
Comando choice [texto] [opções]......................................................... 44
8
Bibliografia ......................................................................................................... 45
Prof. Cássio M. Baraky
Email.: [email protected]
G.S.O – I – Gestão de Sistemas Operacionais I
1 Conceitos Básicos do Computador
Um sistema computacional pode ser dividido em três componentes básicos e
fundamentais, onde o funcionamento errado ou a falta de um destes três elementos
pode acarretar uma falha neste sistema.
Um sistema computacional pode ser dividido em:
Hardware – Parte física do equipamento ( monitores, peças internas, teclado, mouse,
impressoras e outros.
Software – A parte lógica de um sistema computacional que corresponde a todos os
programas, aplicativos e sistemas instalados e ou utilizados em uma maquina. Ex.
(Windows, Linux, PowerDVD, MS-Word e outros).
Peopleware – A expressão peopleware, ou usuários, pessoas que utilizam um sistema
computacional, é utilizada para mostrar que em um sistema computacional o homem
tem e sempre terá um papel muito importante.
O hardware ainda pode ser dividido em periféricos e componentes de processamento
principal, onde os componentes de processamento principais estão agrupados dentro
de uma caixa metálica muitas vezes chamada erroneamente de CPU, quando o nome
correto seria gabinete, a CPU (processador) está dentro do gabinete acoplado a outros
equipamentos que fazem parte deste centro de processamento de dados. Todos os
outros hardwares acoplados a este gabinete são chamados de periféricos, assim
temos como periféricos hardwares como: mouse, teclado, monitor, impressora,
microfone, caixas de som, scaner e muitos outros.
O homem interage com a maquina, inserindo nela dados, aguardando seu
processamento e esperando dentro de um curto espaço de tempo uma resposta para
seu cálculos comando e outras entradas de dados possíveis.
Os periféricos e hardwares do computador, ainda podem ser divididos em quatro
conjuntos de dispositivos sendo eles:
•
Dispositivos de Entrada.
•
Dispositivos de Processamento.
•
Dispositivos de Saída.
•
Dispositivos de Entrada e Saída.
Veja o organograma abaixo:
Prof. Cássio M. Baraky
Email.: [email protected]
G.S.O – I – Gestão de Sistemas Operacionais I
Dispositivos
de
Entrada
Dispositivos
de
Processamento
Dispositivos
de
Saída
Dispositivos
de
Entrada e Saída
Dispositivos de entrada são todos os equipamentos periféricos ou não que nos dão a
possibilidade de entrar com dados em um sistema computacional, como os principais
dispositivos de entrada de dados temos: Teclado, mouse, microfone, Drive de CDRom e muitos outros.
Dispositivos de processamento são todos os dispositivos responsáveis pelos cálculos
e pelo processamento das informações, sejam elas matemáticas, lógicas ou qualquer
outro tipo. Quando falamos em dispositivos de processamento nos vem a cabeça um
único dispositivo, o processador, realmente o processador e responsável por
processar milhões de cálculos em poucos segundos ou frações do mesmo, mas ele
não esta sozinho com o único dispositivo de processamento, para que ele possa
exercer seu trabalho, dispositivos como, placa mãe, memória e placa de vídeo devem
estar funcionando perfeitamente e se comunicando uns com os outros, outros
dispositivos também muito importantes são os hardwares de armazenamento como
discos rígidos, unidades de fita e placas de multimídia como placas de áudio, rede e
outros estes dispositivos porem auxiliam no processamento mas uma maquina pode
funcionar sem a presença obrigatória deles.
Os dispositivos de saída são todos aqueles que nos retornam uma resposta dos dados
processados pela maquina, nos dispositivos de saída ou de entrega de dados da
maquina para o usuário temos como principal o monitor de vídeo e a impressora,
também temos como dispositivos de saída as caixas de som, tornos CNC, bordadeiras
e escultores digitais entre outros.
OS dispositivos de entrada e saída são dispositivo que possibilitam tanto o
carregamento do sistema computacional com informações ou seja a entrada de dados
no sistema como a entrega de respostas ou simplesmente a copia de dados do
sistema para unidades externas, os equipamentos de entrada e saída são muitos,
começando pelo simples e já praticamente obsoleto Drive de disquete, passando pelos
Drives de Gravadores de CD e DVD ate dispositivos USB como pendrives, MP3
Player, MP4 e vários outros dispasitivos.
Prof. Cássio M. Baraky
Email.: [email protected]
G.S.O – I – Gestão de Sistemas Operacionais I
2 As unidades de informação: bit e byte
Em Informática é muito importante considerar a capacidade de armazenamento, já que
quando se faz algo no computador, trabalha-se com arquivos que podem ser
guardados para uso posterior. Evidentemente, quando se armazena algo, isto ocupa
um certo espaço de armazenamento.
Assim como a água é medida em litros ou o açúcar é medido em quilos, os dados de
um computador são medidos em bits e bytes. Cada valor do código binário foi
denominado "bit" (binary digit), que é a menor unidade de informação.
Cada conjunto de 8 bits forma o byte, o qual corresponde a um caracter, seguindo o
código binário.
2.1 Por que 1 Kb equivale a 1024 bytes?
No caso do quilo e de outras medidas de nosso dia-a-dia, a estrutura numérica é
construída sobre a base 10. O termo quilo representa a milhar constituída de alguma
coisa. Nossa base de trabalho numérica, sendo 10, faz com que, quando a base é
elevada à terceira potência, atinja a milhar exatamente com 1000 unidades.
Mas, quando falamos em bytes, grupos de bits, não estamos falando em base 10, mas
sim em uma estrutura fundamentada no código binário, ou seja, na base 2, nos 2
modos que o computador detecta, geralmente chamados de 0 e 1.
Assim, quando queremos um quilo de bytes, temos que elevar essa base a algum
número inteiro, até conseguir atingir a milhar.
Mas não há número inteiro possível que atinja exatamente o valor 1.000. Então, ao
elevarmos a base 2 à décima potência, teremos 1024.
Com esse raciocínio agora podemos entender a seguinte tabela:
Unidade de medida
Número de caracteres
Espaço
1 byte
1
8 bits
1 Kilobyte (Kb)
1.024
1024 bytes
1 Megabyte (Mb)
1.048.576
1024 Kb
1 Gigabyte (Gb)
1.073.741.824
1024 Mb
1 Terabyte (Tb)
1,099511628 x e12
1024 Gb
Portanto, concluímos que, por exemplo, quando se diz que um disco rígido tem
capacidade de armazenamento de 4,3 Gb, são armazenados aproximadamente 4
milhões e 500 mil caracteres.
Prof. Cássio M. Baraky
Email.: [email protected]
G.S.O – I – Gestão de Sistemas Operacionais I
3 Fases Históricas da Computação
A evolução dos sistemas operacionais está, em grande parte, relacionada ao
desenvolvimento de equipamentos cada vez mais velozes, compactos e de custos
baixos, e à necessidade de aproveitamento e controle desses recursos.
Neste histórico dividimos essa evolução em fases, once destacamos, em cada uma,
sues principals características de hardware, software, interação com o sistema e
aspectos de conectividade.
3.1 Primeira Fase (1945-1955)
No início da Segunda Guerra Mundial, surgiram os primeiros computadores digitais,
formados por milhares de válvulas, que ocupavam areas enormes, sendo de
funcionamento lento e duvidoso.
O ENIAC (Electronic Numerical Integrator and Computer) foi o primeiro computador
digital de propósito geral. Criado pare a realização de cálculos balísticos, sue estrutura
possuía 18 mil válvulas, 10 mil capacitores, 70 mil resistores e pesava 30 toneladas.
Quando em operação, consumia cerca de 140 quilowatts e era capaz de realizar 5 mil
adições por segundo.
Para trabalhar nessas máquinas, era necessário conhecer profundamente o
funcionamento do hardware, pods a programação era feita em painéis, através de fios,
utilizando linguagem de máquina.
Nessa fase, ainda não existia o conceito de sistema operacional.
Outros computadores foram construídos nessa mesma época, como o EDVAC
(Electronic Discrete Variable Automatic Computer) e o IAS (Princeton Institute for
Advanced Studies), mas eram utilizados, praticamente, apenas nas universidades e
nos órgãos militares.
Com o desenvolvimento da indústria de computadores, muitas empresas foram
fundadas ou investiram no setor, como a Sperry e a IBM, o que levou a criação dos
primeiros computadores pare aplicações comerciais. A primeira máquina fabricada
com esse propósito e bem-sucedida foi o UNIVAC I (Universal Automatic Computer),
criado especialmente pare o censo americano de 1950.
3.2 Segunda Fase (1956-1965)
A criação do transistor e das memórias magnéticas contribui pare o enorme avanço
dos computadores da época. O transistor permitiu o aumento da velocidade e da
confiabilidade do processamento, e as memórias magnéticas permitiram o acesso
mais rápido aos dados, major capacidade de armazenamento e computadores
menores.
Com o surgimento das primeiras linguagens de programação, como Assembly e
Fortran, os programas deixaram de ser feitos diretamente no hardware, o que facilitou
enormemente o processo de desenvolvimento de programas.
Já não era mais possível conviver com tantos procedimentos manuais como os
anteriores, que não permitiam o uso eficiente do computador e de seus recursos. Os
primeiros sistemas operacionais surgiram, justamente, pare tentar automatizar as
tarefas manuais
Prof. Cássio M. Baraky
Email.: [email protected]
G.S.O – I – Gestão de Sistemas Operacionais I
Inicialmente, os programas passaram a ser perfurados em cartões, que, submetidos a
uma leitora, eram gravados em uma fita de entrada (Figura 4a). A fita, então, era lida
pelo computador, que executava um programa de cada vez, gravando o resultado do
processamento em uma fita de saída (Figura 4b). Ao terminar de todos os programas,
a fita de saída era lida e impressa (Figura 4c). A esse tipo de processamento, onde um
lote (batch) de programas era submetido ao computador, deu-se o nome de
processamento batch.
Pode não parecer um avanço, mas anteriormente os programas eram submetidos pelo
operador, um a um, fazendo com que o processador ficasse ocioso entre a execução,
ao de um programa e outro.
Com o processamento batch, um grupo de programas era submetido de uma só vez, o
que diminuía o tempo existente entre a execução dos programas, permitindo, assim,
melhor uso do processador.
Os sistemas operacionais passaram a ter seu próprio conjunto de rotinas pare
operações de entrada/saída (Input/Output Control System—IOCS), que veio facilitar
bastante o processo de programação. O IOCS eliminou a necessidade de os
programadores desenvolverem sues próprias rotinas de leitura/gravação específicas
para cada dispositivo periférico. Essa facilidade de comunicação criou o conceito de
independência de dispositivos.
Importantes avanços, em nível de hardware, foram implementados no final dessa fase,
principalmente na linha 7094 da IBM. Entre eles, destacamos o conceito de canal, que
veio permitir a transferência de dados entre dispositivos de entrada/saída e memória
principal de forma independente da UCP. Ainda nessa fase, destacamos os sistemas
FMS (Fortran Monitor System) e IBSYS.
Prof. Cássio M. Baraky
Email.: [email protected]
G.S.O – I – Gestão de Sistemas Operacionais I
3.3 Terceira Fase (1966-1980)
Através dos circuitos integrados (CIs) e, posteriormente, dos microprocessadores, foi
possível viabilizar e difundir o uso de sistemas computacionais por empresas, devido a
diminuição de seus custos de aquisição. Além disso, houve grande aumento do poder
de processamento e diminuição no tamanho dos equipamentos.
Com base nessa nova tecnologia, a IBM lançou em 1964 a Série 360. Esse
lançamento causou uma revolução na indústria de informática, pois introduzia uma
linha (família) de computadores pequena, poderosa e, principalmente, compatível. Isso
permitiu que uma empresa adquirisse um modelo mais simples e barato e, conforme
sues necessidades, mudasse pare modelos com mais recursos, sem comprometer
sues aplicações já existentes. Para essa série, foi desenvolvido o sistema operacional
OS/360, que tentava atender todos os tipos de aplicações e periféricos. Apesar de
todos os problemas desse equipamento e de seu tamanho físico, a Série 360
introduziu novas técnicas, utilizadas ate hoje.
Na mesma época, a DEC lançou a linha PDP-8, também revolucionária, pois
apresentava uma linha de computadores de porte pequeno e baixo custo, se
comparada aos mainframes ate então comercializados, criando um novo mercado, o
de minicomputadores.
A evolução dos processadores de entrada/saída permitiu que, enquanto um programa
esperasse por uma operação de leitura/gravação, o processador executasse um outro
programa. Para tal, a memória foi dividida em partições, onde cada programa
esperava sue vez pare ser processado. A essa técnica de compartilhamento da
memória principal e processador deu-se o nome de multiprogramação.
Com a substituição das fitas por discos no processo de submissão dos programas, o
processamento batch tornou-se mais eficiente, pois permitia a alteração na ordem de
execução das tarefas, ate então puramente seqüencial. A essa técnica de submissão
de programas chamou-se spooling, que, mais tarde, também viria a ser utilizada no
processo de impressão.
Os sistemas operacionais, mesmo implementando o processamento batch e a
multiprogramação, ao, ainda estavam limitados a processamentos que não exigiam
comunicação com o usuário. Para permitir a interação rápida entre o usuário e o
computador, foram adicionados terminais de vídeo e teclado (interação on-line).
A multiprogramação evoluiu preocupada em oferecer aos usuários tempos de
respostas razoáveis e uma interface cada vez mais amigável. Para tal, cada programa
na memória utilizaria o processador em pequenos intervalos de tempo. A esse sistema
de divisão de tempo do processador chamou-se timesharing (tempo compartilhado).
Outro fato importante nessa fase foi o surgimento do sistema operacional Unix (1969).
Concebido inicialmente em um minicomputador PDP-7, baseado no sistema MULTICS
(Multiplexed Information and Computing Service), o Unix foi depois rescrito em uma
linguagem de alto nível (linguagem C), tornando-se conhecido por sue portabilidade.
No final dessa fase, com a evolução dos microprocessadores, surgiram os primeiros
microcomputadores, muito mais baratos que qualquer um dos computadores ate então
comercializados.
Entre eles, destacamos os micros de 8 bits da Apple e o sistema operacional CP/M
(Control Program Monitor).
Prof. Cássio M. Baraky
Email.: [email protected]
G.S.O – I – Gestão de Sistemas Operacionais I
3.4 Quarta Fase (1981-1990)
A integração em large escala (Large Scale Integration-LSI) e a integração em muito
large escala (Very Large Scale Integration-VLSI) levaram adiante o projeto de
miniaturização e barateamento dos equipamentos. Os mini e superminicomputadores
se firmaram no mercado e os microcomputadores ganharam um grande impulso.
Nesse quadro surgiram os microcomputadores PC (Personal Computer) de 16 bits da
IBM e o sistema operacional DOS (Disk Operation System), criando a filosofia dos
computadores pessoais. Na área dos minis e superminicomputadores ganharam
impulso os sistemas multiusuário, com destaque pare os sistemas compatíveis com o
Unix (Unix-like) e o VMS (Virtual Memory System) da DEC. Surgem as estações de
trabalho (workstations) que, apesar de monousuárias, permitem que se executem
diversas tarefas concorrentemente, criando o conceito de multitarefa.
No final dos anos 80, os computadores tiveram um grande avanço, decorrente de
aplicações que exigiam um enorme volume de cálculos. Para acelerar o
processamento, foram adicionados outros processadores, exigindo dos sistemas
operacionais novos mecanismos de controle e sincronismo. Com o
multiprocessamento, foi possível a execução de mais de um programa
simultaneamente, ou ate de um mesmo programa por mais de um processador. Além
de equipamentos com múltiplos processadores, foram introduzidos processadores
vetoriais e técnicas de paralelismo em diferentes níveis, fazendo com que os
computadores se tornassem ainda mais poderosos.
As redes distribuídas (Wide Area Network- WANs) se difundiram por todo o mundo,
permitindo o acesso a outros sistemas de computação, independentemente de estado,
país e, ate mesmo, fabricante.
Nesse contexto são desenvolvidos inúmeros protocolos de rede, alguns proprietários,
como o DECnet da DEC e o SNA (System Network Architecture) da IBM, e outros de
domínio público, como o TCP/IP e o CCITT X.25. Surgem as primeiras redes locals
(Local Area Network—LANs) interligando pequenas áreas. Os softwares de rede
passaram a estar intimamente relacionados ao sistema operacional e surgem os
sistemas operacionais de rede.
3.5 Quinta Fase (1991- )
Grandes avanços em termos de hardware, software e telecomunicações podem ser
esperados ate o final deste século. Essas mudanças são conseqüência da evolução
das aplicações, que necessitam cada vez mais de capacidade de processamento e
armazenamento de dados. Sistemas especialistas, sistemas multimídia, banco de
dados distribuídos, inteligência artificial e redes neurais são apenas alguns exemplos
da necessidade cada vez major.
A evolução da microeletrônica permitirá o desenvolvimento de processadores e
memórias cada vez mais velozes e baratos, Além de dispositivos menores, mais
rápidos e com major capacidade de armazenamento. Os componentes baseados em
tecnologia VLSI (Very Large Scale Integration) evoluem rapidamente pare o ULSI
(Ultra Large Scale Integration).
Os computadores da próxima geração têm de ser muito mais eficientes que os atuais,
pare atender o volume cada vez major de processamento. Para isso, está ocorrendo
uma mudança radical na filosofia de projeto de computadores. Arquiteturas paralelas,
baseadas em organizações de multiprocessadores não convencionais, já se
encontram em desenvolvimento em varies universidades e centros de pesquisa do
mundo.
Prof. Cássio M. Baraky
Email.: [email protected]
G.S.O – I – Gestão de Sistemas Operacionais I
A evolução do hardware encadeará modificações profundas nas disciplines de
programação pare fazer melhor uso das arquiteturas paralelas. Assim, novas
linguagens e metodologias de programação concorrentes estão sendo desenvolvidas,
em particular, fazendo uso extensivo de inteligência artificial e CAD (Computer-Aided
Design).
O conceito de processamento distribuído será explorado nos sistemas operacionais,
de forma que sues funções estejam espalhadas por vários processadores através de
redes de computadores. Isso só será possível devido a redução, ao dos custos de
comunicação e ao aumento na taxa de transmissão de dados.
A arquitetura cliente-servidor aplicada basicamente a redes locais passe a ser
oferecida em redes distribuídas, permitindo que qualquer pessoa tenha acesso a todo
tipo de informação, independentementede once esteja armazenada. Problemas de
segurança, gerência e desempenho tornam-se fatores importantes relacionados ao
sistema operacional e a rede.
A década de 90 foi definitiva pare a consolidação dos sistemas operacionais baseados
em interfaces gráficas. Apesar da evolução da interface, a forma de interação com os
computadores sofrerá, talvez, uma das modificações mais visíveis. Novas interfaces
homem-máquina serão utilizadas, como linguagens naturais, sons e imagens, fazendo
essa comunicação mais inteligente, simples e eficiente.
Os conceitos e implementações só vistos em sistemas considerados de grande porte
estão sendo introduzidos na maioria dos sistemas desktop, como na família Windows
da Microsoft, no Unix e no OS/2 da IBM.
Prof. Cássio M. Baraky
Email.: [email protected]
G.S.O – I – Gestão de Sistemas Operacionais I
3.6 Tabela de Características de cada Fase
Existe uma grande distância entre os circuitos eletrônicos e dispositivos de hardware e
os programas aplicativos em software. Os circuitos são complexos, acessados através
de interfaces de baixo nível (geralmente usando as portas e entrada/saída do
processador) e muitas vezes suas características e seu comportamento dependem da
tecnologia usada emsua construção. Por exemplo, a forma de acesso de baixo nível a
discos rígidos IDE difere da forma de acesso a discos SCSI ou leitores de CD. Essa
grande diversidade pode ser uma fonte de dores de cabeça para o desenvolvedor de
aplicativos. Portanto, torna-se desejável oferecer aos programas aplicativos uma forma
de acesso homogênea aos dispositivos físicos, que permita abstrair as diferenças
tecnológicas entre eles.
O sistema operacional é uma camada de software que opera entre o hardware e os
programas aplicativos voltados ao usuário final. O sistema operacional é uma estrutura
de software ampla,muitas vezes complexa, que incorpora aspectos de baixo nível
(como drivers de dispositivos e gerência de memória física) e de alto nível (como
programas utilitários e a própria interface gráfica).
A figura 1 ilustra a arquitetura geral de um sistema de computação típico. Nela,
podemos observar elementos de hardware, o sistema operacional e alguns programas
aplicativos.
Prof. Cássio M. Baraky
Email.: [email protected]
G.S.O – I – Gestão de Sistemas Operacionais I
Prof. Cássio M. Baraky
Email.: [email protected]
G.S.O – I – Gestão de Sistemas Operacionais I
4 Histórico dos sistemas operacionais
Os primeiros sistemas de computação, no final dos anos 40 e início dos anos 50, não
possuíam sistema operacional. Por outro lado, os sistemas de computação atuais
possuem sistemas operacionais grandes, complexos e em constante evolução. A
seguir são apresentados alguns dos marcos mais relevantes na história dos sistemas
operacionais:
Anos 40: cada programa executava sozinho e tinha total controle do computador.
A carga do programa em memória, a varredura dos periféricos de entrada para busca
de dados, a computação propriamente dita e o envio dos resultados para os periférico
de saída, byte a byte, tudo devia ser programado detalhadamente pelo desenvolvedor
da aplicação.
Anos 50: os sistemas de computação fornecem“bibliotecas de sistema”
(systemlibraries) que encapsulam o acesso aos periféricos, para facilitar a
programação de aplicações.
Algumas vezes um programa “monitor” (system monitor) auxilia a carga e descarga de
aplicações e/ou dados entre a memória e periféricos (geralmente
leitoras de cartão perfurado, fitas magnéticas e impressoras de caracteres).
1961 : o grupo do pesquisador Fernando Corbató, do MIT, anuncia o desenvolvimento
do CTSS – Compatible Time-Sharing System[CDD62], o primeiro sistema operacional
com compartilhamento de tempo.
1965 : a IBMlança o OS/360, um sistema operacional
compartilhamento de tempo e excelente suporte a discos.
avançado,
com
1965 : um projeto conjunto entre MIT, GE e Bell Labs define o sistema operacional
Multics, cujas idéias inovadoras irão influenciar novos sistemas durante décadas.
1969 : Ken Thompson e Dennis Ritchie, pesquisadores dos Bell Labs, criam a primeira
versão do UNIX.
1981 : a Microsoft lança o MS-DOS, um sistema operacional comprado da empresa
Seattle Computer Products em 1980.
1984 : a Apple lança o sistema operacional Macintosh OS 1.0, o primeiro a ter uma
interface gráfica totalmente incorporada ao sistema.
1985 : primeira tentativa daMicrosoft no campo dos sistemas operacionais
cominterface gráfica, através do MS-Windows 1.0.
1987 : Andrew Tanenbaum, um professor de computação holandês, desenvolve um
sistema operacional didático simplificado, mas respeitando a API do UNIX, que foi
batizado como Minix.
1987 : IBM e Microsoft apresentam a primeira versão do OS/2, um sistema multitarefa
destinado a substituir o MS-DOS e o Windows. Mais tarde, as duas empresas rompem
a parceria; a IBM continua no OS/2 e a Microsoft investe no ambiente Windows.
1991 : Linus Torvalds, um estudante de graduação finlandês, inicia o desenvolvimento
do Linux, lançando na rede Usenet o kernel 0.01, logo abraçado por centenas de
programadores ao redor do mundo.
1993 : a Microsoft lança oWindows NT, o primeiro sistema 32 bits da empresa.
1993 : lançamento dos UNIX de código aberto FreeBSD e NetBSD.
Prof. Cássio M. Baraky
Email.: [email protected]
G.S.O – I – Gestão de Sistemas Operacionais I
2001 : a Apple lança o MacOS X, um sistema operacional derivado da família UNIX
BSD.
2001 : lançamento doWindows XP.
2004 : lançamento do núcleo Linux 2.6.
2006 : lançamento doWindows Vista.
Esse histórico reflete apenas o surgimento de alguns sistemas operacionais
relativamente populares; diversos sistemas acadêmicos ou industriais de grande
importância pelas contribuições inovadoras, como Mach, Chorus, QNX e Plan 9, não
estão representados.
Prof. Cássio M. Baraky
Email.: [email protected]
G.S.O – I – Gestão de Sistemas Operacionais I
5 Sistemas Operacionais
5.1 O que é um sistema operacional?
O sistema operacional é o componente de um sistema computacional que faz o
interfaceamento homem – maquina, o sistema operacional nos permite controlar todo
o sistema de computação dês do hardware até o software.
Podemos considerar um sistema operacional como um alocador de recursos. Um
sistema de computação possui muitos recursos (hardware e software) que podem ser
necessários para resolver um problema: tempo de CPU, espaço na memória, espaço
de armazenamento de arquivos, dispositivos de entrada e saída entre outros.
O sistema operacional atua como gerente de recursos e os aloca a programas e
usuários específicos conforme o necessário para a execução das tarefas.
O sistema operacional e um software que esta sempre em execução no computador.
5.2 Tipos de sistemas operacionais
Os sistemas operacionais podem ser classificados segundo diversos parâmetros e
perspectivas, como tamanho, velocidade, suporte a recursos específicos, acesso à
rede, etc. A seguir são apresentados alguns tipos de sistemas operacionais usuais
(muitos sistemas operacionais se encaixam bem em mais de uma das categorias
apresentadas):
5.2.1 Sistema operacional em lote (Batch)
os sistemas operacionais mais antigos trabalhavam “por lote”, ou seja, todos os
programas a executar eram colocados em uma fila, com seus dados e demais
informações para a execução. O processador recebia um programa após o outro,
processando-os em seqüência, o que permitia um alto grau de utilização do sistema.
Ainda hoje o termo “em lote” é usado para designar um conjunto de comandos que
deve ser executado em seqüência, sem interferência do usuário.
Exemplos desses sistemas incluem o OS/360 e VMS, entre outros.
5.2.2 Sistema de tempo compartilhado
O tempo compartilhado, ou multitarefa, é uma extensão lógica da multiprogramação. A
CPU executa vários jobs alternando entre eles, mas as trocas ocorrem com tanta
freqüência que os usuários podem interagir com cada programa durante sua
execução.
Um sistema interativo permite a comunicação direta entre o usuário e o sistema. O
usuário passa informações ao sistema operacional ou a um programa diretamente,
usando um teclado ou mouse, e espera resultados imediatos.
Um sistema operacional de tempo compartilhado utiliza o escalonamento de CPU e a
multiprogramação para oferecer a cada usuário uma pequena parte de um computador
de tempo compartilhado.
Um programa carregado na memória e executando é normalmente chamado de
processo.
Os sistema de tempo
multiprogramados.
compartilhado
são
bem
mais
complexos
que
os
Prof. Cássio M. Baraky
Email.: [email protected]
G.S.O – I – Gestão de Sistemas Operacionais I
A idéia de tempo compartilhado foi apresentada pela primeira vez em 1960, mas como
os sistemas de tempo compartilhado são difíceis e caros de construir, só se tornaram
comuns no inicio dos anos 70.
5.2.3 Sistemas de computadores pessoais (Desktop)
Os computadores pessoais apareceram nos anos 70. Durante a primeira década, a
CPU ns PCs não tinha os recursos necessários para proteger um sistema operacional
dos programas do usuário. Os sistemas operacionais para PC, protanto, não eram
nem multiuruário nem multitarefa.
A meta destes sistemas operacionais mudaram com o tempo; em vez de maximizar a
utilização da CPU e periféricos, os sistemas optam por maximizar a conveniência e a
capacidade de resposta ao usuário.
um sistema operacional “de mesa” é voltado ao atendimento do usuário doméstico e
corporativo para a realização de atividades corriqueiras, como edição de textos e
gráficos, navegação na Internet e reprodução de mídias simples. Sua principais
características são a interface gráfica, o suporte à interatividade e a operação em
rede. Exemplos de sistemas desktop são o Windows XP, MacOS X e Linux.
5.2.4 Sistemas paralelos
A maioria dos sistemas existentes até hoje são sistema de um único processador, ou
seja, só tem uma CPU principal. No entanto, existe uma tendência em direção aos
sistemas de multiprocessador. Tais sistemas têm mais de um processador em
comunicação ativa, compartilhando o barramento, o clock, e as vezes, a memória e os
dispositivos periféricos.
Uma vantagem e a maior produção. Aumentando o numero de processadores, esperase realizar mais trabalho em menos tempo.
A taxa de aumento de velocidade com n processadores, entretanto, não é n, mas
menor que n.
Se houver dez processadores e um falhar, cada um dos nove processadores restantes
deverá pegar uma parte do trabalho do processador que falhou. Assim o sistema
inteiro executa apenas 10% mais lentamente, em vez de parar por completo.
Existem dois tipos de multiprocessamento, o multiprocessamento assimétrico e o
simétrico.
No assimétrico a cada processador é atribuído uma tarefa específica. Um processador
mestre controla o sistema; os outros processadores procuram o mestre para receber
instruções ou tem tarefas predefinidas. Esse esquema define uma relação mestreescravo. O processador mestre escalona e aloca trabalho para os processadores
escravos.
No multiprocessamento simétrico, todos os processadores são iguais; não existindo a
relação mestre-escravo entre eles. Cada processador executa uma copia do sistema
operacional de forma concorrente.
5.2.5 Sistema de tempo real
Ao contrário da concepção usual, um sistema operacional de tempo real não precisa
ser necessariamente ultra-rápido; sua característica essencial é ter um comportamento
temporal previsível (ou seja, seu tempo de resposta deve ser conhecido no melhor e
pior caso de operação). A estrutura interna de um sistema operacional de tempo real
Prof. Cássio M. Baraky
Email.: [email protected]
G.S.O – I – Gestão de Sistemas Operacionais I
deve ser construída de forma a minimizar esperas e latências imprevisíveis, como
tempos de acesso a disco e sincronizações excessivas.
Um sistema de tempo real é usado quando existem requisitos rígidos de tempo na
operação de um processador ou no fluxo de dados; assim ele geralmente e usado
como um dispositivo de controle em uma aplicação dedicada.
Os sensores levam dados ao computador. O computador deve analisar os dados e
talvez ajustar os controles para modificar as características dos sensores.
Os sistemas que controlam experimentos científicos, sistemas de imagens médicas,
sistemas de controle industrial, alguns sistema de injeção de combustíveis de veículos,
sistemas de armas e outros.
Existem duas classificações de sistemas de tempo real: soft real-time systems, nos
quais a perda de prazos implica na degradação do serviço prestado.
Um exemplo seria o suporte à gravação de CDs ou à reprodução de músicas. Caso o
sistema se atrase, pode ocorrer a perda da mídia em gravação ou falhas na música
que está sendo tocada.
Por outro lado, nos hard real-time systems a perda de prazos pelo sistema pode
perturbar o objeto controlado, com graves conseqüências humanas, econômicas ou
ambientais.
Exemplos desse tipo de sistema seriam o controle de funcionamento de uma turbina
de avião a jato ou de uma caldeira industrial.
Exemplos de sistemas de tempo real incluemoQNX, RT-Linux e VxWorks.
Muitos sistemas embutidos têm características de tempo real, e vice-versa.
5.2.6 Sistemas distribuídos
Em um sistema operacional distribuído, os recursos de cada máquina estão
disponíveis globalmente, de forma transparente aos usuários. Ao lançar uma
aplicação, o usuário interage com sua janela, mas não sabe onde ela está executando
ou armazenando seus arquivos: o sistema é quem decide, de forma transparente. Os
sistemas operacionais distribuídos já existem há tempos (Amoeba e Clouds, por
exemplo),mas ainda não são uma realidade de mercado.
5.2.7 Sistemas Multi-usuário
Um sistema operacionalmulti-usuário deve suportar a identificação do “dono” de cada
recurso dentro do sistema (arquivos, processos, áreas dememória, conexões de rede)
e impor regras de controle de acesso para impedir o uso desses recursos por usuários
não autorizados. Essa funcionalidade é fundamental para a segurança dos sistemas
operacionais de rede e distribuídos. Grande parte dos sistemas atuais são multiusuários.
5.2.8 Sistemas de servidor
Um sistema operacional servidor deve permitir a gestão eficiente de grandes
quantidades de recursos (disco, memória, processadores), impondo prioridades e
limites sobre o uso dos recursos pelos usuários e seus aplicativos. Normalmente um
sistema operacional servidor também tem suporte a rede e multi-usuários.
Prof. Cássio M. Baraky
Email.: [email protected]
G.S.O – I – Gestão de Sistemas Operacionais I
5.2.9 Sistemas embutidos (embarcados)
Um sistema operacional é dito embutido (embedded) quando é construído para operar
sobre um hardware com poucos recursos de processamento, armazenamento e
energia. Aplicações típicas desse tipo de sistema aparecem em telefones celulares,
controladores industriais e automotivos, equipamentos eletrônicos de uso doméstico
(leitores de DVD, TVs, fornos-micro-ondas, centrais de alarme, etc.). Muitas vezes um
sistema operacional embutido se apresenta na forma de uma biblioteca a ser ligada ao
programa da aplicação (que é fixa). Exemplos de sistemas operacionais embutidos
são o µC/OS, Xylinx, LynxOS e VxWorks.
5.3 Funcionalidades do sistema operacional
Para cumprir seus objetivos de abstração e gerência, o sistema operacional deve atuar
em várias frentes. Cada um dos recursos do sistema possui suas particularidades, o
que impõe exigências específicas para gerenciar e abstrair os mesmos. Sob esta
perspectiva, as principais funcionalidades implementadas por um sistema operacional
típico são:
5.3.1 Gerência do processador
Também conhecida como gerência de processos ou de atividades, esta funcionalidade
visa distribuir a capacidade de processamento de forma justa1 entre as aplicações,
evitando que uma aplicação monopolize esse recurso e respeitando as prioridades dos
usuários. O sistema operacional provê a ilusão de que existe um processador
independente para cada tarefa, o que facilita o trabalho dos programadores de
aplicações e permite a construção de sistemas mais interativos. Também faz parte da
gerência de atividades fornecer abstrações para sincronizar atividades interdependentes e prover formas de comunicação entre elas.
5.3.2 Gerência de memória
Tem como objetivo fornecer a cada aplicação uma área de memória própria,
independente e isolada das demais aplicações e inclusive do núcleo do sistema. O
isolamento das áreas de memória das aplicações melhora a estabilidade e segurança
do sistema como um todo, pois impede aplicações com erros (ou aplicações
maliciosas) de interferir no funcionamento das demais aplicações.
Além disso, caso a memória RAM existente seja insuficiente para as aplicações, o
sistema operacional pode aumentá-la de forma transparente às aplicações, usando o
espaço disponível em um meio de armazenamento secundário (como um disco rígido).
Uma importante abstração construída pela gerência de memória é a noção de
memória virtual, que desvincula os endereços de memória vistos por cada aplicação
dos endereços acessados pelo processador na memória RAM. Com isso, uma
aplicação pode ser carregada em qualquer posição livre da memória, sem que seu
programador tenha de se preocupar com os endereços de memória onde ela irá
executar.
5.3.3 Gerência de dispositivos
Cada periférico do computador possui suas peculiaridades; assim, o procedimento de
interação com uma placa de rede é completamente diferente da interação comum
disco rígido SCSI. Todavia, existem muitos problemas e abordagens em comum para
o acesso aos periféricos. Por exemplo, é possível criar uma abstração única para a
maioria dos dispositivos de armazenamento como pen-drives, discos SCSI ou IDE,
disquetes, etc, na forma de um vetor de blocos de dados. A função da gerência de
dispositivos (também conhecida como gerência de entrada/saída) é implementar a
Prof. Cássio M. Baraky
Email.: [email protected]
G.S.O – I – Gestão de Sistemas Operacionais I
interação com cada dispositivo por meio de drivers e criar modelos abstratos que
permitam agrupar vários dispositivos distintos sob a mesma interface de acesso.
5.3.4 Gerência de arquivos
Esta funcionalidade é construída sobre a gerência de dispositivos e visa criar arquivos
e diretórios, definindo sua interface de acesso e as regras para seu uso. É importante
observar que os conceitos abstratos de arquivo e diretório são tão importantes e
difundidos que muitos sistemas operacionais os usam para permitir o acesso a
recursos que nada tem a ver com armazenamento.
Exemplos disso são as conexões de rede (nos sistemas UNIX e Windows, cada socket
TCP é visto como um descritor de arquivo no qual pode-se ler ou escrever dados) e as
informações do núcleo do sistema (como o diretório /proc do UNIX).
No sistema operacional experimental Plan 9, todos os recursos do sistema operacional
são vistos como arquivos.
5.3.5 Gerência de proteção
Com computadores conectados em rede e compartilhados por vários usuários, é
importante definir claramente os recursos que cada usuário pode acessar, as formas
de acesso permitidas (leitura, escrita, etc) e garantir que essas definições sejam
cumpridas. Para proteger os recursos do sistema contra acessos indevidos, é
necessário:
a) definir usuários e grupos de usuários;
b) identificar os usuários que se conectam ao sistema, através de procedimentos de
autenticação;
c) definir e aplicar regras de controle de acesso aos recursos, relacionando todos os
usuários, recursos e formas de acesso e aplicando essas regras através de
procedimentos de autorização; e finalmente
d) registrar o uso dos recursos pelos usuários, para fins de auditoria e contabilização.
Além dessas funcionalidades básicas oferecidas pela maioria dos sistemas
operacionais, várias outras vêm se agregar aos sistemas modernos, para cobrir
aspectos complementares, como a interface gráfica, suporte de rede, fluxos
multimídia, gerência de energia, etc.
As funcionalidades do sistema operacional geralmente são inter-dependentes: por
exemplo, a gerência do processador depende de aspectos da gerência dememória,
assim como a gerência de memória depende da gerência de dispositivos e da
gerência de proteção.
Alguns autores representam a estrutura do sistema operacional conforme indicado na
figura 2. Nela, o núcleo central implementa o acesso de baixo nível ao hardware,
enquanto os módulos externos representam as várias funcionalidades do sistema.
Prof. Cássio M. Baraky
Email.: [email protected]
G.S.O – I – Gestão de Sistemas Operacionais I
Uma regra importante a ser observada na construção de um sistema operacional é a
separação entre os conceitos de política e mecanismo. Como política consideram-se
os aspectos de decisão mais abstratos, que podem ser resolvidos por algoritmos de
nível mais alto, como por exemplo decidir a quantidade de memória que cada
aplicação ativa deve receber, ou qual o próximo pacote de rede a enviar para
satisfazer determinadas especificações de qualidade de serviço.
Por outro lado, como mecanismo consideram-se os procedimentos de baixo nível
usados para implementar as políticas, ou seja, atribuir ou retirarmemória de uma
aplicação, enviar ou receber um pacote de rede, etc. Os mecanismos devem ser
suficientemente genéricos para suportar mudanças de política sem necessidade de
modificações. Essa separação entre os conceitos de política e mecanismo traz uma
grande flexibilidade aos sistemas operacionais, permitindo alterar sua personalidade
(sistemas mais interativos ou mais eficientes) sem ter de alterar o código que interage
diretamente com o hardware.
Alguns sistemas, como o InfoKernel, permitem que as aplicações escolham as
políticas do sistema mais adequadas às suas necessidades.
5.4 Estrutura de um sistema operacional
Um sistema operacional não é um bloco único e fechado de software executando
sobre o hardware. Na verdade, ele é composto de diversos componentes com
objetivos e funcionalidades complementares. Alguns dos componentes mais
relevantes de um sistema operacional típico são:
5.4.1 Núcleo
É o coração do sistema operacional, responsável pela gerência dos recursos do
hardware usados pelas aplicações. Ele também implementa as principais abstrações
utilizadas pelos programas aplicativos.
Prof. Cássio M. Baraky
Email.: [email protected]
G.S.O – I – Gestão de Sistemas Operacionais I
5.4.2 Drivers
Módulos de código específicos para acessar os dispositivos físicos. Existe um driver
para cada tipo de dispositivo, como discos rígidos IDE, SCSI, portas USB, placas de
vídeo, etc. Muitas vezes o driver é construído pelo próprio fabricante do hardware e
fornecido em forma compilada (em linguagem de máquina) para ser acoplado ao
restante do sistema operacional.
5.4.3 Código de inicialização
A inicialização do hardware requer uma série de tarefas complexas, como reconhecer
os dispositivos instalados, testá-los e configurá-los adequadamente para seu uso
posterior. Outra tarefa importante é carregar o núcleo do sistema operacional em
memória e iniciar sua execução.
5.4.4 Programas utilitários
São programas que facilitam o uso do sistema computacional, fornecendo
funcionalidades complementares ao núcleo, como formatação de discos e mídias,
configuração de dispositivos, manipulação de arquivos (mover, copiar, apagar),
interpretador de comandos, terminal, interface gráfica, gerência de janelas, etc.
As diversas partes do sistema operacional se relacionam entre si conforme
apresentado na figura 3.
Prof. Cássio M. Baraky
Email.: [email protected]
G.S.O – I – Gestão de Sistemas Operacionais I
5.5 Gerência de tarefas
Em um sistema de computação, é freqüente a necessidade de executar várias tarefas
distintas simultaneamente. Por exemplo:
•
O usuário de um computador pessoal pode estar editando uma imagem,
imprimindo um relatório, ouvindo música e trazendo da Internet um novo
software, tudo ao mesmo tempo.
•
Em um grande servidor de e-mails, centenas de usuários conectados
remotamente enviam e recebem e-mails através da rede.
•
Um navegador Web precisa buscar os elementos da página a exibir, analisar e
renderizar o códigoHTML e o gráficos recebidos, animar os elementos da
interface e responder aos comandos do usuário.
No entanto, um processador convencional somente trata um fluxo de instruções
decada vez. Até mesmo computadores com vários processadores (máquinas Dual
Pentium ou processadores com tecnologia hyper-threading, por exemplo) têm mais
atividades a executar que o número de processadores disponíveis. Como fazer para
atender simultaneamente as múltiplas necessidades de processamento dos usuários?
Uma solução ingênua seria equipar o sistema com um processador para cada tarefa,
mas essa solução ainda é inviável econômica e tecnicamente. Outra solução seria
multiplexar o processador entre as várias tarefas que requerem processamento. Por
multiplexar entendemos compartilhar o uso do processador entre as várias tarefas, de
forma a atendê-las da melhor maneira possível.
Os principais conceitos abordados nesta parte do capítulo compreendem:
• Como as tarefas são definidas;
• Quais os estados possíveis de uma tarefa;
• Como e quando o processador muda de uma tarefa para outra;
• Como ordenar (escalonar) as tarefas para usar o processador.
5.6 O conceito de tarefa
Uma tarefa é definida como sendo a execução de um fluxo seqüencial de instruções,
construído para atender uma finalidade específica: realizar um cálculo complexo, a
edição deumgráfico, a formatação deumdisco, etc. Assim, a execução deuma
seqüência de instruções em linguagem de máquina, normalmente gerada pela
compilação de um programa escrito em uma linguagem qualquer, é denominada
“tarefa” ou “atividade” (do inglês task).
É importante ressaltar as diferenças entre os conceitos de tarefa e de programa:
Um programa é um conjunto de uma ou mais seqüências de instruções escritas para
resolver um problema específico, constituindo assim uma aplicação ou utilitário. O
programa representa um conceito estático, sem um estado interno definido (que
represente uma situação específica da execução) e sem interações com outras
entidades (o usuário ou outros programas). Por exemplo, os arquivos
C:\Windows\notepad.exe e /usr/bin/nano são programas de edição de texto.
Uma tarefa é a execução, pelo processador, das seqüências de instruções definidas
em um programa para realizar seu objetivo. Trata-se de um conceito dinâmico, que
possui um estado interno bem definido a cada instante (os valores das variáveis
internas e a posição atual da execução) e interage comoutras entidades: o usuário, os
periféricos e/ou outras tarefas.
Fazendo uma analogia clássica, pode-se dizer que um programa é o equivalente de
uma “receita de torta” dentro de um livro de receitas (um diretório) guardado em uma
Prof. Cássio M. Baraky
Email.: [email protected]
G.S.O – I – Gestão de Sistemas Operacionais I
estante (umdisco) na cozinha (o computador). Essa receita de torta define os
ingredientes necessários e o modo de preparo da torta. Por sua vez, a ação de
“executar” a receita, providenciando os ingredientes e seguindo os passos definidos na
receita, é a tarefa propriamente dita. A cada momento, a cozinheira (o processador)
está seguindo um passo da receita (posição da execução) e tem uma certa disposição
dos ingredientes e utensílios em uso (as variáveis internas da tarefa).
Assim como uma receita de torta pode definir várias atividades inter-dependentes para
elaborar a torta (preparar a massa, fazer o recheio, decorar, etc), um programa
tambémpode definir várias seqüências de execução inter-dependentes para atingir
seus objetivos. Por exemplo, o programa do navegador Web ilustrado na figura abaixo
define várias tarefas que uma janela de navegador deve executar simultaneamente,
para que o usuário possa navegar na Internet:
4
2
1
3
Figura: Tarefas de um navegador Internet
1. Buscar via rede os vários elementos que compõem a página Web;
2. Receber, analisar e renderizar o código HTML e os gráficos recebidos;
3. Animar os diferentes elementos que compõem a interface do navegador;
4. Receber e tratar os eventos do usuário (clicks) nos botões do navegador;
Dessa forma, o processador tem então de se multiplexar entre todas as tarefas
definidas nessa “receita de torta” (e outras tarefas que possam estar sendo
executadas pelos usuários) para atingir os objetivos esperados. Às vezes podemos ter
mais de uma cozinheira trabalhando juntas na mesma cozinha, o que irá agilizar o
trabalho, mas também tornará mais complexa a gerência das tarefas.
Prof. Cássio M. Baraky
Email.: [email protected]
G.S.O – I – Gestão de Sistemas Operacionais I
5.7 A gerência de tarefas
Os primeiros sistemas de computação, nos anos 40, executavam apenas uma tarefa
de cada vez. Nestes sistemas, cada programa binário era carregado do disco para a
memória e executado até sua conclusão. Os dados de entrada da tarefa
eramcarregados na memória juntamente com a mesma e os resultados obtidos no
processamento eram descarregados de volta no disco após a conclusão da tarefa.
Todas as operações de transferência de código e dados entre o disco e a memória
eram coordenados por um operador humano. Esses sistemas primitivos eramusados
sobretudo para aplicações de cálculo numérico,muitas vezes comfinsmilitares
(problemas de trigonometria, balística, mecânica dos fluidos, etc). A figura a seguir
ilustra um sistema desse tipo.
Figura: Sistema mono-tarefa: 1) carga do código na memória, 2) carga dos dados
na memória, 3) processamento, consumindo dados e produzindo resultados, 4)
ao término da execução, a descarga dos resultados no disco.
Nesse método de processamento de tarefas é possível delinear um diagrama de
estados para cada tarefa executada pelo sistema, que está representado na figura
abaixo.
Coma evolução do hardware, as tarefas de carga e descarga de código entre memória
e disco, coordenadas por um operador humano, passaram a se tornar críticas: mais
Figura: Diagrama de estados de uma tarefa em um sistema mono-tarefa.
tempo era perdido nesses procedimentos manuais que no processamento da tarefa
em si. Para resolver esse problema foi construído um programa monitor, que era
carregado namemória no início da operação do sistema coma função de coordenar a
execução dos demais programas. O programa monitor executava basicamente os
seguintes passos sobre uma fila de programas a executar, armazenada no disco:
repetir
carregar um programa do disco para a memória
Prof. Cássio M. Baraky
Email.: [email protected]
G.S.O – I – Gestão de Sistemas Operacionais I
carregar os dados de entrada do disco para a memória
transferir a execução para o programa recém carregado
aguardar o término da execução do programa
escrever os resultados gerados pelo programa no disco
até processar todos os programas da fila
Percebe-se claramente que a função do monitor é gerenciar uma fila de programas a
executar, mantida no disco. Na medida em que os programas são executados pelo
processador, novos programas podem ser inseridos na fila pelo operador do sistema.
Além de coordenar a execução dos demais programas, o monitor também colocava à
disposição destes uma biblioteca de funções para simplificar o acesso aos dispositivos
de hardware (teclado, leitora de cartões, disco, etc). Assim, o monitor de sistema
constitui o precursor dos sistemas operacionais.
O uso do programa monitor agilizou o uso do processador, mas outros problemas
persistiam. Como a velocidade de processamento era muito maior que a velocidade de
comunicação com os dispositivos de entrada e saída1, o processador ficava ocioso
durante os períodos de transferência de informação entre disco ememória. Se a
operação de entrada/saída envolvia fitas magnéticas, o processador podia ficar vários
minutos parado, esperando. O custo dos computadores era elevado demais (e sua
capacidade de processamento muito baixa) para permitir deixá-los ociosos por tanto
tempo.
A solução encontrada para resolver esse problema foi permitir ao processador
suspender a execução da tarefa que espera dados externos e passar a executar outra
tarefa.
Mais tarde, quando os dados de que necessita estiverem disponíveis, a tarefa
suspensa pode ser retomada no ponto onde parou. Para tal, é necessário ter mais
memória (para poder carregar mais de um programa ao mesmo tempo) e definir
procedimentos para suspender uma tarefa e retomá-la mais tarde. O ato de retirar um
recurso de uma tarefa (neste caso o recurso é o processador) é denominado
preempção. Sistemas que implementam esse conceito são chamados sistemas
preemptivos.
A adoção da preempção levou a sistemas mais produtivos (e complexos), nos quais
várias tarefas podiam estar em andamento simultaneamente: uma estava ativa e as
demais suspensas, esperando dados externos ou outras condições. Sistemas que
suportavam essa funcionalidade foram denominados monitores multi-tarefas. O
diagrama de estados da figura abaixo ilustra o comportamento de uma tarefa em um
sistema desse tipo:
Figura: Diagrama de estados de uma tarefa em um sistema multi-tarefas.
1Essa diferença de velocidades permanece imensa nos sistemas atuais. Por exemplo, em um
computador atual a velocidade de acesso à memória é de cerca de 10 nanossegundos (10 × 10−9s),
enquanto a velocidade de acesso a dados em um disco rígido IDE é de cerca de 10 milissegundos (10 ×
10−3s), ou seja, um milhão de vezes mais lento!
Prof. Cássio M. Baraky
Email.: [email protected]
G.S.O – I – Gestão de Sistemas Operacionais I
Solucionado o problema de evitar a ociosidade do processador, restavam no entanto
vários outros problemas a resolver. Por exemplo, um programa que contém um laço
infinito jamais encerra; como fazer para abortar a tarefa, ou ao menos transferir o
controle ao monitor para que ele decida o que fazer? Situações como essa podem
ocorrer a qualquer momento, por erros de programação ou intencionalmente, como
mostra o exemplo a seguir:
Esse tipo de programa pode inviabilizar o sistema, pois a tarefa em execução nunca
termina nem solicita operações de entrada/saída, monopolizando o processador e
impedindo a execução das demais tarefas (pois o controle nunca volta ao monitor).
Além disso, essa solução não era adequada para a criação de aplicações interativas.
Por exemplo, um terminal de comandos pode ser suspenso a cada leitura de teclado,
perdendo o processador. Se ele tiver de esperar muito para voltar ao processador, a
interatividade com o usuário fica prejudicada.
Para resolver essa questão, foi introduzido no início dos anos 60 um novo conceito:
o compartilhamento de tempo, ou time-sharing, através do sistema CTSS –
Compatible Time-Sharing System. Nessa solução, cada atividade que detém o
processador recebe um limite de tempo de processamento, denominado quantum2.
Esgotado seu quantum, a tarefa em execução perde o processador e volta para uma
fila de tarefas “prontas”, que estão na memória aguardando sua oportunidade de
executar. Essa “preempção por tempo de processamento” é implementada coma
ajuda de temporizadores externos programáveis (implementados em hardware) que
geram interrupções ao disparar.
O diagrama de estados das tarefas deve ser reformulado para incluir a preempção por
tempo que implementa a estratégia de tempo compartilhado. A figura abaixo apresenta
esse novo diagrama, que é conhecido na literatura da área como diagrama de ciclo de
vida das tarefas.
Figura: Diagrama de estados de uma tarefa em um sistema de tempo compartilhado.
2A duração atual do quantum depende muito do tipo de sistema operacional; no Linux ela varia de 10
a 200 milissegundos, dependendo do tipo e prioridade da tarefa.
Prof. Cássio M. Baraky
Email.: [email protected]
G.S.O – I – Gestão de Sistemas Operacionais I
Os estados e transições do ciclo de vida apresentado na figura acima têm o seguinte
significado:
Nova : A tarefa está sendo criada, i.e. seu código está sendo carregado em memória,
junto comas bibliotecas necessárias, e as estruturas de dados do núcleo estão sendo
atualizadas para permitir sua execução.
Pronta : A tarefa está em memória, pronta para executar (ou para continuar sua
execução), apenas aguardando a disponibilidade do processador. Todas as tarefas
prontas são organizadas em uma fila cuja ordem é determinada por algoritmos de
escalonamento.
Executando : O processador está dedicado à tarefa, executando suas instruções e
fazendo avançar seu estado.
Suspensa : A tarefa não pode executar porque depende de dados externos ainda não
disponíveis (do disco ou da rede, por exemplo), aguarda algum tipo de sincronização
(o fim de outra tarefa ou a liberação de algum recurso compartilhado) ou simplesmente
espera o tempo passar (em uma operação sleeping, por exemplo).
Terminada : O processamento da tarefa foi encerrado e ela pode ser removida da
memória do sistema.
Tão importantes quanto os estados das tarefas apresentados na figura 5 são as
transições entre esses estados, que são explicadas a seguir:
· · · !Nova : Esta transição ocorre quando uma nova tarefa é admitida no sistema e
começa a ser preparada para executar.
Nova!Pronta : ocorre quando a nova tarefa termina de ser carregada em memória,
juntamente com suas bibliotecas e dados, estando pronta para executar.
Pronta!Executando : esta transição ocorre quando a tarefa é escolhida pelo
escalonador para ser executada, dentre as demais tarefas prontas.
Executando!Pronta : esta transição ocorre quando se esgota a fatia de tempo
destinada à tarefa (ou seja, o fimdo quantum); como nessemomento a tarefa não
precisa de outros recursos além do processador, ela volta à fila de tarefas prontas,
para esperar novamente o processador.
Executando!Terminada : ocorre quando a tarefa encerra sua execução ou é abortada
em conseqüência de algum erro (acesso inválido à memória, instrução ilegal, divisão
por zero, etc). Na maioria dos sistemas a tarefa que deseja encerrar avisa o sistema
operacional através de uma chamada de sistema (no Linux é usada a chamada exit).
Terminada! · · · : Uma tarefa terminada é removida da memória e seus registros e
estruturas de controle no núcleo são apagadas.
Executando!Suspensa : caso a tarefa em execução solicite acesso a um recurso não
disponível, como dados externos ou alguma sincronização, ela abandona o
processador e fica suspensa até o recurso ficar disponível.
Suspensa!Pronta : quando o recurso solicitado pela tarefa se torna disponível, ela
pode voltar a executar, portanto volta ao estado de pronta.
Prof. Cássio M. Baraky
Email.: [email protected]
G.S.O – I – Gestão de Sistemas Operacionais I
6 Sistema Operacional MS-DOS
Ao contrário do UNIX, que roda numa grande variedade de máquinas diferentes, o
MS-DOS só roda em arquiteturas baseadas nos processadores Intel 8088 e seus
sucessores.
Quando foi lançado era considerado um sistema de fácil utilização e que trabalhava
bem com os equipamentos existentes na época.
O que veremos neste capitulo, é um pouco da história deste sistema operacional,
como ele funcionava e em uma parte bem prática seu funcionamento e comandos de
sistema.
6.1 HISTÓRIA DO MS-DOS
O primeiro computador pessoal foi o Altair, produzido em 1975 por uma companhia
chamada MITS, de Albuquerque, Novo México, EUA. Ele era baseado no
microprocessador 8080, de oito bits, fabricado pela Intel, e tinha 256 bytes de
memória. O Altair, não tinha teclado, nem vídeo, muito menos dicos ou fitas, mas seu
preço muito baixo, em torno de 400 dólares, tranformou-o num cult para eletrônicos
amadores, que cresceram montando kits de rádio e televisões vendidos em bancas de
jornal. Um jovem chamado Bill Gates escreveu uma versão BASIC para o Altair, que
obteve um sucesso modesto junto ao usuários do microcomputador. Mais tarde este
programa veio a fazer de Gates um bilionário.
Em poucos anos muitas empresas começaram a produzir micro computadores
baseados no chip 8080. Em quase todas essas máquinas, rodava um sistema
operacional chamado CP/M, produzido por uma pequena empresa da Califórnia, a
Digital Research. Todos os computadores pessoais (chamados microcomputadores)
projetados de 1975 até o início da década de 80 nada mais eram do que brinquedos
comprados e utilizados fundamentalmente pelas pessoas que tinham a eletrônica
como hobby.
6.1.1 O IBM PC
No início dos anos 80, a IBM, que então dominava a indústria de computadores,
deciciu entrar no negócio da computação pessoal. No entanto, como ela custou a
tomar uma decisão sobre o assunto, já era tarde para desenvolver um projeto próprio.
Por conta disso, seus executivos decidiram fazer algo que não era usual para a
normalmente cautelosa e burocrática IBM. Enviaram um de seus gerentes, Philip
Estridge, para Boca Raton, na Flórida, a dois mil quilômetros do quartel-general da
corporação, situado no condado de Westchester, Nova Iorque, com uma mala cheia
de dinheiro, com a recomendação de não voltar de Nova Iorque sem um projeto de
computador pessoal no bolso.
Estridge percebeu logo que a única maneira de se produzir rapidamente um
computador pessoal era utilizando componentes-padrão, em vez dos projetados
internamente, pela própeia IBM, como ela sempre fazia. Nesta época, a Intel já tinha
produzido dois sucessores para o 8080, o 8086, de 16 bits, e o 8088, uma versão do
8086, com barramento de 8 bits. Estridges escolheu, pois os chips que davam suporte
a esse processador eram muito mais baratos que o dos 8086. Esta decisão baseou-se
no fato de o preço de venda da máquina ser o ponto de maior importância no projeto.
Além de não ter interesse em construir ela própria os chips para equipar seu
computador pessoal, a IBM estava muito menos interessada em escrever um software
para ele. Seus executivos sabiam que o BASIC era muito popular entre os usuários de
Prof. Cássio M. Baraky
Email.: [email protected]
G.S.O – I – Gestão de Sistemas Operacionais I
computadores pessoais, de modo que eles foram consultar Bill Gates, que nesta
época já tinha fundado uma nova empresa, chamada Microsoft, afim de licensiar o
interpretador BASIC para ser usado no IBM-PC. Pediram também que Gates
desenvolvesse um sistema operacional para a nova máquina.
A Microsoft, porém, estava dedicada ao projeto de vender o UNIX, sob licemsa de Bell
Labs (AT & T). Ocorre que o UNIX originário do mundo dos mini computadores,
precisava de 100Kb de memória só para o sistema operacional e também de um disco
rígido. A máquina da IBM, tinha um total de 64k de memória e não era equipada com
disco rígido. Em função disso, Gates sugeriu que a IBM usasse o CP/M – 86,
desenvolveido pela Digital Research. A IBM consultou a Digital Research, que
respondeu que o desenvolvimento dos CP/M – 86 estava atrasado em relação ao
cronograma original, e a IBM não podia esperar.
A Microsoft foi então mais uma vez procurada, desta vez consultada sobre a
possibilidade de escrever um sistema operacional com as mesmas características do
CP/M – 86. Os projetos de Gates o impediram de assumir a empreitada e realizá-la no
prazo exigido pela IBM. Ele, porém, sabia que uma empresa vizinha da Microsoft, a
Seattle Computer Products, havia desenvolvido um sistema operacional CP/M – like,
denominado 86 – DOS , para testar as placas de memória que ela produzia e vendia.
A Microsoft então comprou o 86 – DOS, e em abril de 1981, contratou seu projetista,
Tim Paterson, para torná-lo ainda menor. Eles mudaram o nome do sistema para MSDOS (Micro Soft – Disk Operating System), entregando-o a IBM dentro do prazo
contratado. Quando o IBM PC foi anunciado com pompa de circunstância em agosto
de 1981, o MS-DOS estava lá junto com ele.
Na versão da IBM e de muitos outros fabricantes, a maior virtude do MS-DOS era a de
permitir que softwares desenvolvidos para CP/M, que rodavam no processador 8080
(o 8088 era compatível com o 8080 e podia rodar a maioria dos seus programas com
pouquíssimas modificações), rodassem também sob o MS-DOS. Ninguém poderia
imaginar que 10 anos depois este pequeno sistema, que surgiu no mercado quase que
por acidente, pudesse estar controlando o funcionamento de 50 milhões de
computadores espalhados pelo mundo inteiro.
Além do mais, ninguém, nem mesmo a IBM, tinha a menor idéia do sucesso que o IBM
PC iria alcançar. A IBM imaginava inicialmente que ele seria usado para jogos. Basta
ver que a freqüência de 4,77MHz do seu clock, foi escolhida em função da
compatibilidade com a usada nos sistemas de televisão americanas, de maneira a
permitir que as pessoas usassem seus próprios aparelhos de TV com vídeo em vez de
monitores específicos. O PC também vinha equipado com hardware para controlar
aparelhos de gravação/reprodução de fitas cassete, que poderiam ser usadas como
meio de armazenamento, e joysticks. Nenhum destes dois dispositivos, teve muito
uso, em virtude da inexistência de softwares para eles.
Provavelmente a melhor coisa que a IBM fez, foi tornar o PC um sistema aberto. O
projeto completo, inclusive as listagem da ROM e os diagramas elétricos foram
descrito em detalhes em um livro que estava disponível em todos os pontos de venda
dos PCs. Isto fez com que fosse possível usar no PC tanto produtos de Hardware
quanto de Software produzidos por terceiros, a exemplo do que foi feito por milhares
de fabricantes no mundo inteiro.
De fato, com os diagramas de circuitos disponíveis, e a máquina sendo composta
exclusivamente por componentes não dedicados, que podiam ser comprados em
qualquer loja de eletrônica, muitas empresas passaram a construir e a vender cópias
do PC, conhecida como clones, entrando em competição direta com a própria IBM. Foi
Prof. Cássio M. Baraky
Email.: [email protected]
G.S.O – I – Gestão de Sistemas Operacionais I
devido a esta enorma carga de enrgia e criatividade que o PC teve tanto sucesso, e, a
reboque dele, o MS-DOS.
É interessante dizer alguma coisa sobre o hardware do PC. Apesar do 8088 dispor de
um espaço de endereçamento de 1Mb, a IBM resolveu alocar os primeiros 640k deste
espaço para RAM, e o resto para as roms, placas de vídeo e outras coisas. Como
consequência, o MS-DOS, foi projetado para suportar programas com tamanho
máximo de 640k. Em um primeiro momento, isto não era problema, uma vez que as
máquinas só tinham 64 kb de RAM, mas a incapacidade do MS-DOS em rodar
programas com mais de 640k , tornou-se um problema sério. E este problema está
ajudando na sua quase extinção.
Outra característica importante do IBM PC é o fato de ele não dispor de qualquer tipo
de proteção por hardware. Os programas são livres para passar por cima do sistema
operacional e acessar diretamente o hardware, usualmente com o intuito de obter uma
performance melhor. Este estilo de programação resultou em um grande número de
programas mal escritos e sem características que permitissem sua portabilidade. Tais
programas constituiram-se numa assombração constante para seus criadores, que
não raro os recebem de volta.
Com a certa complexidade do DOS em termos de comandos, foi criado um ambiente
gráfico para ele, o Windows. No Windows, além de ser mais fácil "navegar" entre os
programas devido ao sua interface simples de ser interpretada (pastas a diretórios,
figuras para o arquivos, cliques do mouse), já era possível rodar dois programas ao
mesmo tempo, coisa que o DOS não permitia, porém o acesso a memória ainda era
no mesmo esquema do DOS, fazendo que falhas gerais que derrubasse o sistema
fossem ainda muito frequentes.
Com a necessidade de se criar um sistema operacional que pudesse gerenciar essa
memória utilizada pelos programas, impedindo esse acesso direto a memória,
utilizando umas interface mais agradável tanto para leigos como para "experts", e a
própria economia de tempo graças através de um sistema preemptivo, foi criado o
Windows 95 (Sistema Padrão Atual na maioria das máquinas). Porém o Windows 95
não era perfeito, e tinha muitos erros, como qualquer sistema operacional novo, e
algumas características do DOS não foram retiradas com intenção de manter a
compatibilidade com os programas antigos.
Após o windows95 outros sistemas foram desenvolvidos pela MicrosSoft como o
windows NT, 98, ME, XP, 2000, 2003, Vista, 2008.
6.2 Eecutando os comandos do MS-DOS
Antes de começarmos a ver os comandos, é necessário saber como executá-los. No
prompt, você verá o cursor piscando. Isso significa que você já pode digitar. Depois de
ter escolhido o comando, tecle Enter. Aqui, para exemplificar usaremos o modelo de
prompt "C:\Windows>", mas vale lembrar que "C" pode ser qualquer unidade de disco
no seu computador. Normalmente a letra A indica a unidade de disquete. E "Windows"
pode significar qualquer pasta dentro da unidade que você está trabalhando. Mas, é
importante saber que o DOS geralmente não visualiza nomes de arquivos com mais
de 8 caracteres. Por isso, a pasta Meus Documentos, por exemplo, fica assim:
MEUSDO~1.
Prof. Cássio M. Baraky
Email.: [email protected]
G.S.O – I – Gestão de Sistemas Operacionais I
6.2.1 Comandos internos do MS-DOS
Os comandos internos podem ser executados em qualquer pasta no PC e a qualquer
momento pois estão embutidos no DOS.
Nos comandos internos pode-se saber mais informações acerca do mesmo, digitando
/? após o comando, ex.: dir/?, você irá receber informações sobre o comando dir, os
comandos internos são os mais úteis em emergências já que podem ser executados
em qualquer lugar
6.2.1.1 Comando DATE
Esse comando, como o nome já diz, mostra na tela a data atual, permitindo a sua
modificação. O comando DATE deverá ser usado da seguinte maneira: date [opções]
(Sem os colchetes), sendo que não é necessária a utilização das opções caso você
não queira.
Ex.: Digitando date, irá aparecer:
Data atua é: seg 06/10/1997
Digite a nova data: (dd-mm-aa)
Opções:
/t - Informa a data mas não solicita uma nova.
6.2.1.2 Comando TIME
Esse comando faz a mesma coisa que o comando DATE mas ao invés de mudar a
data ele muda a hora: esse comando mostra hora, minutos, segundos e centésimos de
segundo. O comando TIME deverá ser usado da seguinte maneira: Time [opções]
(Sem os colchetes), sendo que não é necessária a utilização das opções caso você
não
queira.
Ex.: Digitando time, irá aparecer:
Hora Atual: 14:20:23,37
Digite a nova Hora:
Opções:
/t - Informa a hora mas não solicita uma nova.
6.2.1.3 Comando VER
Esse comando mostra qual sistema operacional você está usando.
Ex.: Digitando ver, irá aparecer:
Prof. Cássio M. Baraky
Email.: [email protected]
G.S.O – I – Gestão de Sistemas Operacionais I
Microsoft Windows XP [versão 5.1.2600]
6.2.1.4 Comando CLS
Esse comando limpa a tela e posiciona o cursor no canto superior esquerdo da tela.
A Figura abaixo mostra varias informações e o comando CLS pronto para ser
executado no prompt de comando c:\CLS
A Figura abaixo mostra o comando CLS executado.
6.2.1.5 Comando MEM
Comando que fornece informações sobre a memória do computador
Exemplo: Digitando C:\>MEM ira aparecer:
Prof. Cássio M. Baraky
Email.: [email protected]
G.S.O – I – Gestão de Sistemas Operacionais I
6.2.1.6 Comando Dir
O comando dir é muito famoso e quase todos já conhecem: ele mostra todos arquivos
e pastas de um diretório, busca arquivos em um drive especificado.
O comando DIR é usado da seguinte maneira: dir [drive:\][caminho\] arquivo(s)
[opções] (Sem os colchetes) sendo que não é obrigatório a utilização das opções
caso você não queira.
Opções:
/p - A listagem pára toda vez que atinge o fim da tela, sendo necessário que se
pressione qualquer tecla para continuar.
/b - Mostra somente as informações básicas.
/c - Mostra o separador de milhar no tamanho dos arquivos.
/w - Exibe a lista na horizontal, onde são mostrados 5 arquivos por linha.
/d - O mesmo que /w, só que mostra a lista em colunas.
/s - Exibe os arquivos de todos os subdiretórios.
/l - Usa letras minúsculas.
/n - Formato de lista longa em que os nomes dos arquivos ficam na extrema direita.
/q - Mostra o nome do dono do arquivo.
/4 - Exibe anos de 4 dígitos.
/t[campo] - Controla qual campo de tempo é exibido ou usado na classificação
onde [campo] deve ser substituído por um desses caracteres abaixo..
C - Criação.
A - Último acesso.
W - Última gravação.
/o[ordem] - Mostra os arquivos em uma ordem, onde [ordem] deve ser
substituída por um desses caracteres listados abaixo.
N - Nome do arquivo seguido pela extensão.
S - Tamanho do arquivo.
D - Ordem cronológica.
Prof. Cássio M. Baraky
Email.: [email protected]
G.S.O – I – Gestão de Sistemas Operacionais I
G - Grupos de arquivos de subdiretórios.
/a[atributo] - Mostra somente arquivos de determinado atributo, onde [atributo]
deve ser substituído por algum desses caracteres listados abaixo.
D - Nome do arquivo seguido pela extensão.
R - Arquivos somente leitura.
H - Arquivos ocultos .
Obs.: Para reverter o efeito dos caracteres, é necessário a colocação de um
hífen (-)
Ex.: Dir /a-h, mostra todos os arquivos menos os arquivos ocultos.
A figura abaixo mostra um exemplo de utilização do comando DIR.
6.2.1.7 Comando para mudar a unidade de trabalho
No computador existem varias unidades lógicas onde C:\> é a unidade lógica principal,
isso significa que quando trabalhamos e visualizamos no prompt de comando a
unidade C:\> estamos trabalhando no disco rígido da maquina, mas existem certas
ocasiões como no caso de acessar um CD, DVD, uma Pendrive e outros dispositivos
que será necessária talvez uma mudança de unidade.
O comando para mudar uma unidade nada mais é do que a letra da própria unidade
que você deseja acessar, como no exemplo abaixo onde o usuário pretende acessar
um disquete no driver.
C:\> A:
Prof. Cássio M. Baraky
Email.: [email protected]
G.S.O – I – Gestão de Sistemas Operacionais I
6.2.1.8 Comandos de diretório
6.2.1.8.1 Comando MKDIR ou MD
Comando que cria um diretório a partir do diretório corrente com o nome especificado.
Sintaxe: MD [caminho] { Nome } ou MKDIR [caminho] { Nome }
Exemplo:
C:\>MD PROFESSOR
C:\>MKDIR PROFESSOR
6.2.1.8.2 Comando CHDIR ou CD
Comando utilizado para navegação entre diretórios (pastas), ou seja entrar e sair de
diretórios.
Sintaxe: CD [caminho] ou CHDIR [caminho]
Exemplo:
C:\>CD \PROFESSOR , alterna para o diretório PROFESSOR
C:\>CD \PROFESSOR\ALUNOS , alterna para o subdiretório ALUNOS do diretório
Obs. A barra é um item opcional, podendo ser substituída por um espaço em branco,
exceto quando o usuário tiver a necessidade entrar diretamente em um subdiretório
como mostrado na figura acima oude mudar de um subdiretório para o diretório raiz
C:\> como você pode visualizar na figura abaixo.
As opções 2 pontos .. pode e é utilizada para mudar de subdiretórios para diretório
raiz ou unidade raiz, como se pode ver na figura abaixo.
6.2.1.8.3 Comando RD ou RMDIR
Remove uma pasta que esteja vazia, sendo que não consegue remover pastas com
arquivos. Deve ser usado da seguinte maneira: rd [opções] (Sem colchetes), sendo
que não é necessária a utilização das opções caso você não queira.
Prof. Cássio M. Baraky
Email.: [email protected]
G.S.O – I – Gestão de Sistemas Operacionais I
Ex.: Digitando RD Teste você irá excluir a pasta teste.
Opções:
/s - Remove todas as pastas e arquivos da pasta, além dela mesma.
/q - Modo silencioso, não pede confirmação para remover a árvore de pastas quando
usado com /s.
6.2.1.9 Comando TYPE
Mostra o conteúdo de um arquivo (somente um por vez e não aceita caracteres
curinga).
Sintaxe: TYPE [unidade:] [CAMINHO] { Nome do Arquivo }
Exemplo:
C:\TYPE SERIAL.TXT Exibe o conteúdo do arquivo SERIAL.TXT na tela
Utilizando este comando você pode também imprimir o conteúdo de um arquivo
bastando para tanto adicionar a terminação > PRN ou > LPT1 ao comando
Exemplo:
C:\>TYPE CONFIG.SYS > PRN Imprime o conteúdo do arquivo CONFIG.SYS
6.2.1.10
Comando MORE
Comando que exibe o conteúdo de um determinado arquivo, fazendo uma pausa cada
vez que a tela é preenchida.
Sintaxe: MORE < [unidade:] [caminho] { Nome do Arquivo }
Exemplo:
MORE TESTE.TXT
6.2.1.11
Comando COPY
O comando COPY copia um determinado arquivo ou o disco inteiro, sendo que caso
exista algum arquivo no destino com o mesmo nome do arquivo de origem, esse
arquivo será substituído.
O COPY deve ser usado da seguinte maneira: copy [drive:\][caminho\] arquivo(s) de
destino [opções] (Sem colchetes), sendo que não é obrigatoria a utilização das
opções.
Opções:
/v - Verifica o arquivo de destino após a cópia, esta opção deixa o copy mais lento.
Prof. Cássio M. Baraky
Email.: [email protected]
G.S.O – I – Gestão de Sistemas Operacionais I
/a - Indica um arquivo de texto ASCII.
/b - Indica um arquivo binário.
/d - Permite que o arquivo de destino seja criado descriptografado.
/n - Usa um nome de arquivo curto (Padrão 8.3), caso copie um arquivo fora deste
padrão.
/y - Não pede confirmação para que você substitua um arquivo de destino já existente.
/-y - Pede confirmação para que você substitua um arquivo de destino já existente.
/z - Copia arquivos de rede no modo reiniciável.
Neste comando utiliza-se muito os caracteres "curingas" que têm a função de
substituir qualquer caracter ou grupos de caracteres dependendo do curinga.
Os caracteres curingas são representados abaixo de acordo com a sua finalidade.
* - para uma quantidade de caracteres variante.
? - para um caracter
C:\>COPY C:\DOS\S*.* C:\AULA , faz a cópia de todos os arquivos que têm o nome
que se inicia com a letra S do diretório de origem C:\DOS para o diretório de destino
C:\AULA
C:\>COPY C:\DOS\VENDAS?.DOC C:\AULA , faz cópia de todos os arquivos que têm
o VENDAS + 1 CARACTER
( ex: VENDAS1.DOC, VENDASX .DOC, etc.) do diretório de origem
C:\DOS para o diretório destino
C:\AULA
6.2.2 Comandos externos do MS-DOS
Os comandos externos são programas utilitários que acompanham o sistema
operacional e que só podem ser executados onde estão localizados, ou seja, no drive
onde foram gravados.
Assim como nos comandos internos pode-se usar o comando auxiliar /?.
6.2.2.1 Comando DISKCOPY
Quando necessitamos fazer uma cópia das informações de um disquete, podemos
utilizar o comandos Diskcopy. Este comando faz a duplicação de um disco, sendo que
os dois discos devem possuir o mesmo tamanho e capacidade. Este comando só
permite a duplicação de discos flexíveis. Este comando pode conter alguns
argumentos para obter-se uma resposta diferente.
/V - Faz a verificação durante a duplicação do disco
Sintaxe: DISKCOPY [unidade:] [unidade:] /V
Exemplo:
C:\>DISKCOPY A: B: , faz a duplicação de um disco na unidade A: para unidade B:,
sendo que os dois discos devem possuir o mesmo tamanho e capacidade
Prof. Cássio M. Baraky
Email.: [email protected]
G.S.O – I – Gestão de Sistemas Operacionais I
6.2.2.2 Comando XCOPY
Comando que copia arquivos seletivamente, lendo em sub-diretórios diferentes na
origem e podendo criar os sub-diretórios na unidade de destino, se assim for desejado.
Este comando pode conter alguns argumentos para obter-se uma resposta diferente.
ORIGEM Drive, caminho e nome dos arquivos de origem
DESTINO Drive, caminho e nome dos arquivos de destino
/M - Copia os arquivos de origem e os "marca".
/D: - data Copia os arquivos de origem que foram modificados na data definida em
"data"ou depois dela, (mm,dd,yy é o formato default")
/S - Copia os arquivos em diretórios e sub-diretórios, a não ser que estejam vazios
/E - Copia os subdiretórios mesmo que estejam vazios
Sintaxe: XCOPY [ ORIGEM] [DESTINO] /M /D:data /S /E /V
Exemplo:
C:\>XCOPY C:\DOS A: , copia o diretório DOS para o drive A:
6.2.2.3 Comando ATTRIB
O Attrib altera ou mostra os atributos de um arquivo, devendo ser usado da seguinte
maneira: attrib [Atributo] [drive:\][caminho\] nome do(s) arquivo(s) [opções] (Sem
colchetes), sendo que não é necessária a utilização de opções caso você não queira.
Opções do "Atributo" dos colchetes:
+ - Ativa um atributo.
- - Desativa um atributo.
r - Atributo de arquivo somente leitura.
a - Atributo de arquivo de leitura/gravação.
s - Atributo de arquivo de sistema.
h - Atributo de arquivo oculto.
Opções:
/s - Processa os arquivos da pasta atual.
/d - Inclui pastas.
6.2.2.4 Comando TREE
Comando que exibe graficamente a árvore de diretórios e subdiretórios a partir do
diretório-raiz para que o usuário tenha a organização hierarquia do seu disco. Este
comando pode conter algumas variações para obter-se um resultado diferente:
/F - Exibe a árvore de subdiretórios, mostrando também os arquivos existentes
dentro dele.
Prof. Cássio M. Baraky
Email.: [email protected]
G.S.O – I – Gestão de Sistemas Operacionais I
/A - Instrui o comando TREE a usar os caracteres gráficos disponíveis em todas
as páginas de código e permite um processo de impressão mais rápido.
Sintaxe: tree [drive:\][caminho\][opções]
Exemplo:
C:\>TREE
C:\>TREE /F
C:\>TREE /A
6.2.2.5 Comando MOVE
Comando que tem duas funções: Renomear diretórios ou mover arquivos de um
diretório para outro:
Sintaxe: MOVE [unidade:] [caminho] [nome antigo] [nome novo] ou [Origem]
[Destino]
Opções:
/y - Não pede confirmação para a mudança dos arquivos.
/-y - Pede confirmação para mudança dos arquivos.
Exemplos:
C:\>MOVE C:\AULA C:\TESTE - renomeia o diretório C:\AULA para C:\TESTE
C:\>MOVE C:\AULA*.* A:\ - faz a movimentação de todos os arquivos do drive de
origem C:\AULA para o drive de destino A:\, deixando assim o diretório C:\AULA
vazio.
Prof. Cássio M. Baraky
Email.: [email protected]
G.S.O – I – Gestão de Sistemas Operacionais I
6.2.3 Formatando disquetes e Discos Rígidos, apagando arquivos, e
diretórios com conteúdo dentro.
Atenção: Os comando estudados abaixo só poderão ser executados nos
laboratórios do colégio com supervisão ou autorização explícita do
professor ou monitor responsável.
6.2.3.1 Comando FORMAT
Antes de utilizar ou reutilizar um disco novo, você precisa prepará-lo para receber as
informações e, essa preparação do disco é chamada de formatação, que tem a função
de redefinir trilhas e setores na superfície magnética do disco. Num disco formatado
podemos copiar um arquivo, um diretório de vários arquivos ou até um disco inteiro. A
formatação deve ser aplicada com cuidado pois destrói o conteúdo anterior do disco.
Este comando pode conter algumas variações para obter-se uma resposta diferente:
Sintaxe: FORMAT [unidade:] /Q /U /S /4
Opções:
/S - Formata o disco na unidade especificada e insere o Sistema Operacional DOS
/4 - Formata o disquete de baixa densidade em drives de alta densidade
/Q - Formata rapidamente o disco da unidade (Formatação Rápida)
/U - Formata o disco da unidade independente da condição (UNCONDICIONABLE)
Exemplo:
C:\>FORMAT A: - formata o disco na unidade A:
ATENÇÃO: tenha cuidado nas formatações de discos ,pois elas fazem com que
o conteúdo do disco seja perdido. Vale lembrar que esta operação se torna
muito mais crítica quando estamos formatando a unidade C ( FORMAT C:\ ),
operação não indicada para pessoas com pouco conhecimento no assunto.
6.2.3.2 Comando DEL ou ERASE
Apaga arquivos do disco rígido e deve ser usado da seguinte maneira: del
[drive:\][caminho\] nome do(s) arquivo(s) [opções] (Sem colchetes), sendo que não é
necessária a utilização das opções caso você não queira.
Sintaxe: DEL [unidade] [caminho] { Nome do Arquivo }
Opções:
/p - Força a mensagem de confirmação "Apagar( S / N )?".
/f - Força a exclusão de arquivos somente leitura.
/s - Exclui arquivos de todas as subpastas.
/q - Modo silencioso, não pede confirmação para excluir um caractere curinga global.
/a:atributo - Exclui somente arquivos de determinado atributo, onde atributo deve ser
Prof. Cássio M. Baraky
Email.: [email protected]
G.S.O – I – Gestão de Sistemas Operacionais I
substituído por algum desses caracteres e não devem ser digitados os 2 pontos (:).
S - Arquivos de sistema.
R - Arquivos somente leitura.
H - Arquivos ocultos.
A - Arquivos prontos para arquivamento.
Obs.: Para reverter o efeito dos caracteres, é necessário a colocação de um
hífen
(-).
Ex.: Del *.* /a-h, executando este comando, você exclui todos os arquivos menos
os arquivos ocultos da pasta.
6.2.3.3 Comando TREE
É a combinação dos comandos del e tree: ele exclui arquivos de uma pasta suas
subpastas e "subarquivos". Deve ser usado da seguinte maneira: deltree
[opções][drive:\][caminho\] (Sem colchetes), sendo que não é necessária a utilização
de opções caso você não queira.
Comando que apaga um ou mais subdiretórios do disco a partir do diretório corrente:
O comando deltree apaga todos os arquivos e subdiretórios dentro de um diretório de
uma só vez. Como precaução ele sempre exibirá uma mensagem na tela perguntando
se você realmente deseja apagar.
Opções:
/y - Não pede confirmação para a exclusão dos arquivos.
Exemplo:
C:\>DELTREE PROFESSOR
Utilizando-se deste comando o usuário poderá apagar subdiretórios com mais
rapidez e eficiência.
Prof. Cássio M. Baraky
Email.: [email protected]
G.S.O – I – Gestão de Sistemas Operacionais I
7 Arquivo .BAT ( LOTE / BATCH).
A sigla BAT é uma extensão de arquivo muito utilizada no MS-DOS e outros sistemas
da microsoft, provem da palavra BATCH que em inglês significa LOTE.
Os programas ou arquivos feitos para rodarem como LOTE, funcionam da mesma
forma ou que funcionavam os processos nos primeiros computadores, todos os
comandos colocados nestes arquivos serão e são executados de forma seqüencial.
7.1 Para que serve um arquivo .BAT?
Como um arquivo .BAT, você pode automatizar processos em sua maquina como:
•
Limpeza de arquivos temporários.
•
Copias de segurança.
•
Execução de programas
•
Enviar e receber parâmetros para determinadas tarefas.
7.2 Comandos de arquivos .BAT
7.2.1 Comando ECHO
Exibe mensagens ou ativa ou desativa a exibição do comando.
@ECHO [ON | OFF] – Dezativa a exibição de comandos na tela
ECHO [mensagem] - Envia mensagem para tela
ECHO. - Cria uma linha em branco.
Exemplo:
Quando quiser mandar uma mensagem para a tela, utilize o comando como mostrado
abaixo:
ECHO OLA MUNDO!
7.2.2 Comando GOTO
O comando GOTO direciona a leitura de um programa para uma determinada área
demarcada, o comando é demonstrado abaixo
goto nome - direciona a "leitura" para o parágrafo nome.
Para que o comando GOTO funcione corretamente é necessário a criação de áreas
demarcas ou parágrafos de orientação, e estes são criados como mostrado abaixo:
:nome - cria um parágrafo de orientação chamado nome.
7.2.3 Comando CALL
Durante a execução de um arquivo de lote, quando o sistema se depara com o
comando CALL ele automaticamente chama e executa um outro arquivo de lote.
call arquivo - chama um arquivo de lote do MS-DOS.
Prof. Cássio M. Baraky
Email.: [email protected]
G.S.O – I – Gestão de Sistemas Operacionais I
7.2.4 Comando START
O comando START inicia qualquer aplicação do Windows no decorres da execução de
um aequivo de lote.
start arquivo - inicia uma aplicação do Windows
7.2.5 Comando choice [texto] [opções]
É utilizado em programas bat para dar ao usuario um conjunto de opções.
Exemplo: CHOICE /c123456789
Opções:
CHOICE – Habilita apenas resposta S/N
CHOICE /c – Habilita a escolha de varias opções como: 1 , 2 , 3 , 4 , 5 .....
O comando CHOICE tem que vir sempre acompanhado do IF e ERRORLEVEL.
IF e ERRORLEVEL são um complemento usado pelo CHOICE
Comando que possibilita o desenvolvimento de questões e respostas para o usuário
Os comandos CHOICE e IF ERRORLEVEL são comandos que trabalham sempre em
conjunto.
Exemplo:
@echo off
cls
echo Para qual time você torce?
echo Responda a pergunta.
echo --------------------------------------------------Echo [1] Cruzeiro
Echo [2] Atlético MG
Echo [3] Ipatinga
choice /c123
echo --------------------------------------------------if errorlevel 3 goto END
if errorlevel 2 goto END
if errorlevel 1 goto END
Este programa cria as opções, mas quando estas são selecionadas o programa
simplesmente termina pois no comando GOTO exite a palavra END.
A posição do string sempre vem do maior para o menor. 3 , 2 e 1
Prof. Cássio M. Baraky
Email.: [email protected]
G.S.O – I – Gestão de Sistemas Operacionais I
8 Bibliografia
Apostilas e Materiais Publicados:
Prof. Cássio Mendes Baraky – Apostila de Sistemas Operacionais e Historia de
Informática.
Prof. Carlos Henrique Gremmelmaier - Material em PDF
Prof. Carlos Alberto Maziero – Site: http://www.ppgia.pucpr.br/_maziero
Livros:
AbrahamSilberschatz, PeterGalvin, andGregGane. SistemasOperacionais – Conceitos e
Aplicações. Campus, 2001.
Davis, William S., Sistemas Operacionais - Uma Visão Sistemática, Ed. Campus, 1990.
PPGIA CCET PUCPR
Sites da Internet
http://www.algosobre.com.br
http://www.cultura.ufpa.br/dicas/progra/arq-uni.htm
Wikimedia Foundation. Wikipedia online enciclopedia. http://www.wikipedia.org,
2005.
_Copyright (c) 2008 CÁSSIO MENDES BARAKY. É garantida a permissão para
copiar, distribuir e/ou modificar este documento sob os termos da Licença de
Documentação Livre GNU (GNU Free Documentation License), Versão 1.2 ou
qualquer versão posterior publicada pela Free Software Foundation. A licença está
disponível em http://www.gnu.org/licenses/gfdl.txt.
Prof. Cássio M. Baraky
Email.: [email protected]
Download