Você está na página 1de 24

UNIVERSIDADE FEDERAL DE ITAJUB UNIFEI INSTITUTO DE CINCIAS EXATAS ICE DEPARTAMENTO DE MATEMTICA E COMPUTAO DMC BACHARELADO EM SISTEMAS DE INFORMAO

MANUAL DO SISTEMA OPERACIONAL SOMAT

Autores Hiplito Douglas Frana Moreira e Wanessa da Silva Orientador Cludio Kirner 2010

NDICE 1. O que o SOMAT .......................................................................................................... 2 2. Instalao do SOMAT 3. Interface do SOMAT .............................................................................................. 2 .............................................................................................. 3 .................................................................................. 4 .................................................................................. 4

3.1. Viso do Usurio .............................................................................................. 3 3.2. Viso do Supervisor 3.4. Viso do Hardware 3.3. Viso do Sistema Operacional ...................................................................... 4 4. Computador Simplificado .............................................................................................. 5 4.1. Estrutura do Hardware .................................................................................. 6 4.2. Repertrio de Instrues .................................................................................. 9 5. Programas do Usurio .............................................................................................. 11 ...........................................................11 ................................... 13 5.1. Linguagem de Controle de Programa

5.2. Programa de Usurio (nvel do processo de leitura) 5.4. Programa de Usurio (na memria)

5.3. Programa de Usurio (no disco) ...................................................................... 13 ...........................................................13 ....................... 14 5.5. Execuo do Programa Usurio (rea de cdigo, rea de dados, rea de impresso, leitura de dados, impresso, uso de rascunho) 5.6. Exemplo de um programa ...................................................................... 15

6. Editor do SOMAT .......................................................................................................... 17 6.1. Interface .......................................................................................................... 17 6.2. Insero de um Programa 6.2.1. Por edio 6.3. Insero de um lote 6.2.2. Comeando do zero 7. Execuo de Programas no SOMAT 7.1. Execuo de um programa 7.2. Execuo de um lote ...................................................................... 17 ...................................................................... 18 ...................................................................... 19 ...................................................................... 19 .................................................................................. 17 .................................................................................. 18

.................................................................................. 20

7.3. Visualizao durante a execuo ...................................................................... 20 8. Visualizao de um Programa Executado ...................................................................... 21 9. Discusso do Uso do SOMAT para a Aprendizagem de Sistemas Operacionais ........... 22

1. O QUE O SOMAT O Sistema Operacional Multiprogramado Aberto para Treinamento (SOMAT) um sistema operacional multiprogramado com execuo de programas de usurio em tempo partilhado que opera atravs de compartilhamento da UCP entre seus diversos processos concorrentes e os programas de usurios provenientes de terminais. O sistema operacional SOMAT est montado sobre um hardware simulado, contendo sete processos concorrentes, que atuam sobre perifricos, buffers, disco, memria, e outros recursos, como blocos de controle de programas, variveis de controle etc. Os programas do usurio so montados em Assembly. 2. INSTALAO DO SOMAT O SOMAT originalmente criado para executar no sistema DOS, deve ser adaptado para ser executado nos computadores atuais, devido ao aumento considervel de tecnologia, pois a capacidade de processamento atual acelera o SOMAT e no permite seu uso. Para executar o SOMAT em velocidade de processamento adequado, deve-se baixar o software de simulao de sistema DOS, o DOSBox, disponvel em http://www.dosbox.com/download.php?main=1. O SOMAT se encontra disponvel em www.ckirner.com/apoio/so/somat.zip. Para executar o SOMAT no DOSBox no sistema operacional windows, necessrio montar um drive contendo no DOSBox contendo o caminho do SOMAT, pelo seguinte cdigo: Z:\>mount c c:\users\...\somat (coloque o caminho do somat aqui) Z:\>c: C:\>somat

Observao: um caminho mais rpido e prtico para executar o SOMAT, apenas coloque um atalho do aplicativo DOSBox na pasta do SOMAT e quando for abrir o aplicativo arraste o arquivo somat.exe sobre o atalho do DOSBox. Para executar o DOSBox no sistema operacional Linux, apenas clique com o boto direito do mouse sobre o somat.exe e nas opes escolha <abrir com outras aplicaes> e 2

<usar comandos personalizados DOSBOX>, que o somat ser ativado.

3. INTERFACE DO SOMAT O processo de execuo de um dado programa pode ser acompanhado de vrias formas. Para isso necessrio que j se tenha selecionado um programa para execuo e que o mesmo esteja em funcionamento, depois basta pressionar a tecla F1, em seguida escolher atravs das setas (para cima e para baixo) o modo como deseja visualizar o programa em execuo: 3.1 Viso do Usurio Por ser um sistema operacional educativo a viso do usurio oferecida pelo SOMAT diferente dos sistemas operacionais usuais (Windows, Linux), pois ele oferece uma descrio dos processos realizados por ele para a sua manuteno.

3.2 Viso do Supervisor A viso do supervisor mostra as principais tarefas realizadas pelo SOMAT, podendo o super-usurio interferir nestas.

3.3 Viso do Sistema Operacional Mostra a transio e o funcionamento de todos os componentes do sistema operacional

3.4 Viso do Hardware Aqui mostrado como o hardware mantm o funcionamento do SOMAT. mostrado a memria fsica a tabela de pginas e os registradores do processador e a sua intera entre eles.

4. COMPUTADOR SIMPLIFICADO A simulao do hardware leva em conta o funcionamento da UCP, realizando busca e execuo de instrues, e o funcionamento dos perifricos, executando suas operaes principais. Durante a simulao, so verificadas as condies de interrupo e atualizado o tempo definido para execuo dos diversos mdulos do sistema.

Figura: Organizao do hardware - Registradores e vetores de interrupo.

4.1. Estrutura do Hardware O hardware do computador simplificado implementado por software atravs de procedimentos e estruturas de dados, simula um computador, contendo os recursos necessrios para suportar multiprogramao, alm de ter um sistema de segurana de dados, onde ocorre o isolamento da parte de memria responsvel por cada job, no deixando que um leia ou acesse informaes de outros que esto rodando simultaneamente a este. Seus componentes de hardware incluem: uma unidade central de processamento (CPU); memria principal de acesso rpido; uma unidade de armazenamento externo (disco); contador do tempo para execuo de programas (timer); contador da fatia de tempo da CPU para a execuo de cada programa (time slice); relgio (clock); unidade de entrada e sada de dados controladas por canais autnomos; vetor de interrupes;

O Hardware simulado restringe os detalhes da implementao do SO somente as suas caractersticas funcionais e abstrai detalhes de baixo nvel de sua construo. Desta forma, a unidade bsica do sistema de armazenamento (palavra), especificada atravs de uma estrutura de dados. Uma palavra do CS um registro contendo trs campos para valores inteiros: Palavra: | C1 | C2 | C3 | Ao armazenar uma palavra de instruo, os campos de uma palavra tero os seguintes significados: C1: cdigo da operao C2: pgina referida pela instruo C3: deslocamento dentro da pgina referida (palavra) Quando representar um dado, somente o primeiro campo da palavra ser relevante, armazenando o valor do dado: C1: valor do dado armazenado C2: valor do dado armazenado (irrelevante) 6

C3: valor do dado armazenado (irrelevante) Para facilidade de desenvolvimento do sistema simulado, foi definida uma memria do usurio, composta por 256 palavras e sujeita a controles e manipulao por parte do sistema operacional. Para a implementao de um sistema de paginao e memria virtual, entretanto o sistema operacional ira estrutur-la em blocos de 8 palavras, formando 32 pginas.

Figura Diagrama do fluxo de dados no hardware simulado.

Desta forma, um endereo qualquer valido XYZ se refere palavra Z, dentro da pgina.

Com a finalidade de permitir que mais programas possam ser posicionados na memria simultaneamente para execuo, o Sistema Operacional implementa no sistema de endereamento relativo, com memria compartilhada atravs de paginao. Esse sistema de paginao faz com que os programas sejam tratados por partes, de modo que seus cdigos no necessitam estar completamente carregados em memria durante as suas execues e nem estejam alocados de maneira seqencial, ocupando espaos contguos na memria. Os programas so divididos em pginas, do mesmo tamanho que as pginas de memria, que so carregadas em espaos disponveis da memria ou sobrepondo outros pedaos de programa, a medida em que so necessrias para a continuidade da execuo dos programas. Para poder identificar a presena das pginas dos programas na memria e a sua eventual localizao, o Sistema Operacional monta ento uma tabela de pginas, para cada programa, instalada em uma pgina comum de memria. C1: indica presena ou ausncia de uma pgina do programa na memria C2: endereo efetivo da pgina na memria (se estiver presente) C3: (no utilizado) Em qualquer condio de interrupo, se houver um programa em execuo, ele interrompido logo aps a realizao da instruo que estava sendo tratada, e o controle desviado para a rotina de tratamento de interrupes do sistema operacional. As informaes referentes situao dos registradores do hardware e do estado de execuo do programa so salvos no seu BCP e podem ser restauradas quando ele voltar a ser executado.

Desta forma, para obter o endereo efetivo de onde se encontra uma palavra de 8

instruo ou de dados, de um programa o sistema operacional segue o seguinte procedimento: Identifica a pgina de memria que contm a Tabela de Pginas do programa. Pesquisa nessa pgina, na palavra correspondente pgina buscada, a presena

e o endereo efetivo da pgina. O sistema operacional mantm uma Tabela de Pginas para cada programa em execuo. Por ser instalada em uma pgina comum de memria, entretanto, o tamanho dos programas limitado a, no Maximo, 8 pginas. A Unidade Central de Processamento do CS foi projetada com o intuito de prover suporte de Hardware necessrio a execuo de vrios programas com tempo partilhado e paginao de memria do usurio. 4.2. Repertrio de Instrues A Unidade Central de processamento do SOMAT opera com um conjunto de instrues simplificadas que do suporte ao programa, do usurio, que envolve operaes aritmticas, controle de desvio e parada de programas, manipulao de posies de memria, e operaes de E/S e ainda algumas das instrues permitem o endereamento de pginas de memria. No SOMAT so implementados os seguintes repertrios de instrues: HLT: Indica o fim de processamento de um programa. RD XY 0: L a pgina corrente a rea de dados do programa no disco e carrega seu contedo na pgina XY do programa PRN XY 0: Imprime, na rea de impresso do disco alocada pelo programa, o contedo da pgina XY desse programa. LD XYZ: Carrega no acumulador (ACC) o contedo da palavra Z da pgina XY do programa sendo executado. No caso do sistema simulado, a operao carrega no acumulador somente o contedo do primeiro campo da palavra de dados. STR XYZ: Armazena o contedo do acumulador na palavra Z da pgina XY do programa. Atribui o valor do primeiro campo da palavra. SUB XYZ: Atribui ao acumulador o valor correspondente ao valor que continha, subtrado do valor armazenado no primeiro campo da palavra Z da pgina programa do usurio. ADD XYZ: Idem subtrao, atribuindo ao acumulador o resultado da soma ao invs da subtrao. 9

JMP XYZ: Atribui um novo valor para o Contador de Programa do programa em execuo, que passa a ser executado a partir dessa posio. JNG XYZ: O contedo do acumulado checado e, caso contenha um valor negativo, o valor de XYZ atribudo ao CP. Caso o acumulador no seja negativo, o programa continua sua execuo a partir da prxima instruo em relao ao endereo em que encontra. O SOMAT contm ainda um registrador de interrupes que indicam anomalias ou sinais de alerta gerados pelo hardware em determinadas condies. O registrador de interrupes implementado atravs de um vetor de 12 posies com campos que podem assumir os valores 0 ou 1. O valor 1 em um elemento desse vetor representa a ocorrncia da interrupo a que corresponde.O valor 0 indica a no ocorrncia de uma interrupo.

Os elementos de 0 a 3 do vetor correspondem a interrupes de programa, que so geradas em decorrncia das usas execues. O valor 1 no elemento 0 do vetor indica que o programa tentou acessar uma posio de memria fora da rea do seu programa, ou tentou ler ou imprimir dados do disco numa rea fora do espao que havia alocado. O elemento 1 do vetor recebe o valor 1 sempre que um programa tentar executar uma operao cujo cdigo no reconhecido pelo sistema operacional.

10

Se, durante a operao de uma instruo aritmtica, houver overflow no valor armazenado no acumulador, o elemento 2 do vetor de interrupes receber o valor 1. Caso, no clculo do endereo efetivo de uma posio de memria referenciada por um programa, sua tabela de pginas indique que a pgina no est presente na memria, uma interrupo por falta de pgina gerada, atribuindo-se o valor 1 ao elemento 3 do vetor. TIMER e TS so interrupes de tempo e so geradas quando esses registradores assumem o valor 0. Leia, Imprima e Pare so interrupes do sistema e indicam a necessidade de realizaes de aes do sistema operacional. As interrupes dos canais de controle dos perifricos indicam ao sistema operacional o estado da Leitora, da Impressora e do Disco, e so atividades sempre que estes dispositivos completam a realizao de uma operao de Entrada/Sada. Interrupes externas, geradas e so identificadas pelo usurio dos sistema, podem ser geradas e so identificadas pelo elemento 12 do vetor de interrupes. Em qualquer condio de interrupo, se houver um programa em execuo, ele interrompido logo aps a realizao da instruo que estava sendo tratada, e o controle desviado para a rotina de tratamento de interrupes do sistema operacional. As informaes referentes situao dos registradores do hardware e do estado de execuo do programa so salvos no seu BCP e podem ser restauradas quando ele voltar a ser executado. As interrupes por proteo de memria, cdigo de operao invlido, overflow e timer so consideradas fatais e sua ocorrncia durante a execuo de um programa causa o trmino forado de sua execuo e a sua sada do sistema. 5. PROGRAMAS DO USURIO 5.1. Linguagem de Controle de Programa A linguagem de controle de programa do SOMAT define as pginas de incio de job, pgina de incio de pginas de cdigo, pgina de incio de pginas de dados e pgina de fim de job. A pgina de incio de job apresenta a seguinte estrutura:

11

Na palavra 0 o uso de 0, marca a pgina utilizada como pgina de job; Na palavra 1 est a identificao do job no sistema; Na palavra 2 est o timer, que define o tempo necessrio para execuo do job; Na palavra 3 est o nmero de pginas de cdigo, a qual no deve estar diferente da quantidade de pginas de cdigo, ou ento o sistema interromper e finalizar o job; Na palavra 4 est o nmero de pginas de rascunho, a qual devem ser includas as pginas de dados e as pginas de impresso; Na palavra 5 est o nmero de pginas de impresso, as quais so reservadas para dar sada aos dados produzidos pelos programas. A pgina de incio de pgina de cdigos e pgina de dados so definidas a seguir:

Na palavra 0 o uso de 1 define a pgina de controle como pgina de incio de pginas 12

de cdigos, enquanto o uso de 2 define a pgina de controle como pgina de incio de pginas de dados e o uso de 3 define a pgina de controle como pgina de fim de job. 5.2. Programa de Usurio (nvel do processo de leitura) Durante este fase o programa de usurio carregado pela leitora sendo e lido pelo sistema a partir das identificaes da linguagem de controle, reconhecendo as pginas de controle, pginas de cdigos e pginas de dados. *0 JOB *1 CODIGO Cdigo Cdigo *2 DADOS Dados Dados *3 FIM Em seguida o Spool in desmonta as identificaes de controle e monta a estrutura de cdigos e dados que sero carregados no disco. Cdigo Cdigo Dados Dados 5.3. Programa de Usurio (no disco) Durante esta fase o sistema armazena os cdigos e os dados vindos do spool in do processo de leitura e aloca espao para impresso, definido na pgina de controle, onde as pginas sero montadas de acordo com a ordem proposta no programa. Cdigo Cdigo Dados Dados Impresso
Impresso
Pag 0 Pag 1 Pag 0 Pag 1 Pag 0 Pag 1

5.4. Programa de Usurio (na memria) Quando o programa passa do disco para a memria, o sistema constri uma tabela de 13

pginas, que possui a referncia para todas as pginas utilizadas no job, definindo quais as pginas de dados, sero rascunho e quais sero utilizadas para impresso. Esta definio faz com que o sistema seja organizado para evitar acessos indevidos a memria, pois uma tentativa do programa para acessar o disco acima do que foi definido ou imprimir numa pgina de rascunho no declarado, incorrem em interrupes do programa para proteo do sistema. Na memria o programa do usurio apresenta um esquema onde as pginas de cdigo e pginas de rascunho so montadas na memria do usurio.
Tabela de Pginas

Cdigo Cdigo
Rascunho de Dados Rascunho de Impresso

5.5. Execuo do Programa Usurio (rea de cdigo, rea de dados, rea de impresso, leitura de dados, impresso, uso de rascunho) A execuo do programa aps ser carregado na memria, ocorre por meio da leitura das pginas de cdigos e de dados e criao de pginas de impresso para a montagem de uma tabela de pginas onde so guardados os endereos das pginas. Durante a execuo dos cdigos os acessos ao disco so descritos e carregam dados para as pginas de dados, porm esses acessos so limitados pelo nmero de chamadas declaradas anteriormente, se mais acessos a memria ocorrerem durante a execuo dos cdigos por meio de novas chamadas por jumps, o sistema operacional interromper o programa. Aps carregar os dados do disco para as pginas de rascunho o cdigo trabalha com os dados e os armazena nas pginas de impresso, que so pginas de rascunhos preparadas para dar sada, que so armazenadas de novo no disco para ento serem carregadas pelo Spool Out e serem impressas.

14

5.6. Exemplo de um programa

Pgina de Controle

Pgina de Incio de pginas de cdigos

Pgina de Cdigo 0

Pgina de Cdigo 1

15

Pgina de Incio de pginas de dados

Pgina de Dados 0

Pgina de Dados 1

Pgina de Fim de Programa

16

6. EDITOR DO SOMAT 6.1. Interface

A interface do editor do SOMAT apresenta a pgina do programa a ser editado, mostra os comandos para ajuda (F1), salvar alteraes (F2), avanar pgina (PageDown), recuar pgina (PageUp), primeira pgina (Home), ltima pgina (End), editar (R), eliminar pgina (E), inserir pgina antes da pgina atual (A), inserir pgina depois da pgina atual (D) e para sair do editor o comando ESC. 6.2. Insero de um Programa A insero de um programa no SOMAT pode ser feita por meio de edio de cdigo pr-existente e comeando um programa do zero: 6.2.1 Por edio A insero de programas por edio a alterao de um programa pr-existente para adio ou remoo de cdigos e dados, onde o usurio copia um dos arquivos com extenso (*.ARQ) e o renomeia com o nome que desejar.

17

Cpia e renomeao de Arquivo ARQ

Aps a criao do arquivo a ser editado ele deve ser carregado no editor do SOMAT para edio dos dados.

Edio de arquivo modificado

Depois de aberto o arquivo, a interface do editor descrita acima apresentada ao usurio. 6.2.2 Comeando do zero (opcional) O usurio pode tambm iniciar seus programas do zero, onde ele no precisa copiar um programa pr-existente, ele precisa apenas na hora de chamar o editor escrever o nome do programa seguido da extenso (*.ARQ).

Criao de Novo Programa para comear do zero

Aps criar o novo arquivo voc encaminhado para a interface descrita anteriormente, onde pode comear a criar seus prprios programas partindo do zero. 6.3. Insero de um lote Para inserir um lote a um programa j existente o usurio deve seguir os mesmos 18

passos para criao de um JOB, onde na pgina de controle deve inserir um outro identificador de JOB, por exemplo, o primeiro JOB recebeu 1, quaisquer outro JOB deve receber outro identificador que no seja o 1.

Insero de uma nova pgina de controle

O usurio deve inserir uma pgina aps a pgina de fim de programa e criar um novo programa a partir do zero, depois do programa escrito anteriormente. 7. EXECUO DE PROGRAMAS NO SOMAT 7.1. Execuo de um programa Para executar um programa o usurio deve na tela principal do programa apertar a tecla X, ou selecionar execuo, onde aparecer um caixa solicitando o processo de execuo, se em lotes (execuo de nico arquivo), ou pela busca direta. Para a execuo de um programa selecione execuo de um lote:

Depois aparecer um campo pedindo o nome do arquivo a ser executado:

Depois de inserido o nome do arquivo, o usurio deve solicitar, ou no o uso de impresso, onde deve responder sim ou no, em caso no deve especificar um arquivo de sada, em caso sim, o sistema no mais permite o acesso impressora.

19

7.2. Execuo de um lote Para execuo de um lote de arquivos o usurio deve selecionar a caixa busca direta dos lotes:

Onde aparece uma caixa solicitando o diretrio (pasta) onde se localizam os lotes, deixar o campo vazio significa que os arquivos esto no diretrio raiz (pasta do SOMAT). Aps apertar para continuar ser questionado sobre a extenso dos arquivos (usamos no SOMAT arquivos com extenso *.ARQ).

O SOMAT seguir os mesmos passos de solicitao de impressora e arquivo de sada da execuo de apenas um lote, descritos anteriormente.

7.3. Visualizao durante a execuo (mudanas) Durante a execuo do programa o usurio pode visualiz-lo de quatro perspectivas distintas, que durante a execuo do programa podem ser alternadas.

Na viso do usurio, o usurio enxerga apenas as chamadas aos processos, vendo a carga dos seus programas e as reas do sistema operacional que esto ativas. Na viso do supervisor o usurio enxerga o incio dos processos, os processos 20

necessrios a execuo dos programas. Na viso do sistema operacional mostra como os dados trafegam no sistema operacional, bem como o caminho percorrido do terminal de entrada at os processos de sada dos programas. Na viso do hardware, o usurio enxerga como os dados so manipulados e organizados na memria, sua alocao e dispositivos envolvidos no funcionamento. 8. VISUALIZAO DE UM PROGRAMA EXECUTADO Para visualizar um programa que executado o usurio deve ter criado um arquivo de sada durante o processo de execuo, cuja extenso compreende (*.SOS), para poder visualizar os resultados do programa ou lote de programas executados. Para visualizar o arquivo o usurio deve abrir a aba Visualizao na interface principal do SOMAT, por meio da tecla V, ou pelas setas do teclado, onde aparecer uma caixa solicitando o arquivo de sada criado anteriormente.

Caso no o tenha criado surgir uma caixa avisando sobre a no existncia do arquivo:

Na visualizao aparecem as pginas de cdigos, pginas de dados, pginas de impresso, identificador de job e tratamento de interrupo:

21

Arquivo de visualizao

Onde aparece a descrio dos cdigos, as pginas acessadas pelos cdigos e seus deslocamentos, os dados contidos nas pginas de dados, os resultados na pgina de impresso e exibio do tratamento da interrupo, que no caso do exemplo mostra que o programa terminou na pgina de fim de programa sem violar as regras do sistema operacional. 9. DISCUSSO DO USO DO SOMAT PARA O APRENDIZADO DE SISTEMA OPERACIONAL O uso do SOMAT (Sistema Operacional Multiprogramado Aberto Para Treinamento) para o aprendizado de sistemas operacionais trs benefcios tanto para o professor que ministra a matria, quanto para o aluno que a aprende. Isso porque o simulador SOMAT mostra de maneira simplificada o que acontece em um sistema operacional real, com isso o professor pode apresentar os conceitos e mecanismos de um sistema operacional real atravs no s de maneira terica como tambm prtica, o que motiva mais os alunos e gera um ambiente de aula mais dinmico. Com essa ferramenta visual o aluno pode, de uma maneira mais fcil, entender os conceitos tericos abordados pelo professor, atravs do uso de uma ferramenta que simula um SO e trs consigo implementados alguns dos conceitos mais importantes de um Sistema Operacional real, pode tambm visualizar a dinmica do Sistema Operacional de vrias formas, atravs de vrios tipos de vises, pode alterar programas j existentes e pode at fazer seu prprio programa e v-lo rodar nessa ferramenta simplificada.

22

O professor encontra nessa ferramenta, o SOMAT, um apoio para conseguir passar aos alunos toda a dinmica de um Sistema Operacional, atravs de um mtodo mais interativo, diminuindo a distncia entre um modelo de Sistema Operacional real e conceitual, tornando este ltimo mais real, fazendo com que o aprendizado de Sistemas Operacionais se torne mais efetivo e interessante. Sem dvida o Sistema Operacional SOMAT um grande aliado ao aprendizado de Sistema Operacional e uma grande ferramenta, a disposio dos professores, de auxilio e complemento, para os alunos, neste aprendizado.

23