8
UNIVERSIDADE FEDERAL DO CEARÁ BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO RONILDO OLIVEIRA DA SILVA SISTEMAS OPERACIONAIS: CONCEITOS BÁSICOS SOBRE SISTEMAS OPERACIONAIS PRFESSOR LUIS RODOLFO REBOUÇAS COUTINHO QUIXADÁ 2014

Conceitos básicos de sistemas operacionais

Embed Size (px)

DESCRIPTION

Conceitos básicos de sistemas operacionais

Citation preview

Page 1: Conceitos básicos de sistemas operacionais

UNIVERSIDADE FEDERAL DO CEARÁ

BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO

RONILDO OLIVEIRA DA SILVA

SISTEMAS OPERACIONAIS:

CONCEITOS BÁSICOS SOBRE SISTEMAS OPERACIONAIS

PRFESSOR LUIS RODOLFO REBOUÇAS COUTINHO

QUIXADÁ

2014

Page 2: Conceitos básicos de sistemas operacionais

SUMÁRIO

INTRODUÇÃO.......................................................................................................................2

PROCESSOS........................................................................................................................2

ESPAÇOS DE ENDEREÇOS................................................................................................2

SISTEMAS DE ARQUIVOS..................................................................................................3

SISTEMAS DE ENTRADA E SAIDA....................................................................................4

SISTEMAS DE PROTEÇÃO.................................................................................................4

Hardware...........................................................................................................................4

Software.............................................................................................................................4

LINHAS DE COMANDO (SHELL)........................................................................................5

SISTEMAS OPERACIONAIS MONOLITICOS.....................................................................5

SISTEMAS OPERACIONAIS EM CAMADAS......................................................................5

MICROKERNELS..................................................................................................................6

CLIENTE SERVIDOR............................................................................................................6

MÁQUINAS VIRTUAIS..........................................................................................................6

EXOKERNELS......................................................................................................................7

REFERÊNCIAS BIBLIOGRÁFICAS.....................................................................................7

Page 3: Conceitos básicos de sistemas operacionais

3

INTRODUÇÃO

Um sistema operacional, ou software base é um conjunto de rotinas quedesempenham o papel de controle de recursos, como o compartilhamento de memórias,escalonamento de processos, gerência de dispositivos de E/S (entrada e saída),interrupções, etc.

Além de se responsabilizar pela gerência, o sistema operacional é também vistocomo uma camada de abstração entre o computador e o usuário, fornecendo facilidade, esegurança ao se manusear softwares aplicativos.

Vejamos alguns conceitos básicos sobre os sistemas operacionais, características,seus subsistemas e mecanismos.

PROCESSOS

Um processo pode ser entendido como a execução ou parte da execução de umprograma. Sabemos que um sistema operacional moderno é multitarefa baseado emciclos de tempo (clock), ou seja, várias instâncias e processos podem estar aptos a seremexecutadas em uma pilha de execução na memória principal. Esse espaço na memóriareservado para o processo é denominado espaço de endereçamento.

O sistema operacional utiliza do clock para controlar de modo periódico e temporalo acesso dos processos ao processador. Um exemplo comum é quando cada processoempilhado tem alguns microssegundos para permanecer em execução. Quando umprocesso é desempilhado para dar “visibilidade” a outro, ele precisa salvar seu estado (umdos principais serviços do espaço de endereçamento) antes da troca para que se possacontinuar quando o mesmo voltar à atividade.

É válido considerar também que processos podem ser dependentes de outros,automaticamente podemos enxergar uma hierarquia onde processos raízes podem criare/ou chamar outros processos nós como uma ramificação. Como dificilmente essasestruturas são lineares, o sistema operacional usa de mecanismos de escalonamentocom o objetivo de não deixar o processador ocioso e nem permitir que apenas algunsprocessos cheguem à execução.

ESPAÇOS DE ENDEREÇOS

O espaço de endereçamento contém o programa executável, os dados e suapilha de execução. Cada processo possui um conjunto de registradores, um ponteiro queaponta para a pilha e várias informações necessárias para executar e retomar a execuçãoum programa após uma parada seja ela confirmada ou não.

Page 4: Conceitos básicos de sistemas operacionais

4

Todos os sistemas computacionais possuem uma memória principal, eeventualmente, os processos que dão atividade ao sistema são armazenados nessedispositivo de armazenamento temporário. Quando falamos de processos, citamos osespaços alocados para cada um deles e suas particularidades.

Na gerência desses processos, podemos encontrar alguns conflitos como: doisprocessos acessando o mesmo espaço de memória, ou necessidade de mais espaçoocupado por outras instâncias. Hoje, as memórias principais são de tamanhos elevados,mas se acontecesse de um ou mais processos utilizarem todo o espaço deendereçamento e mais um pouco?

Esse problema seria resolvido com o gerenciamento de espaços de endereços pormeio do uso de uma Memória Virtual, que é um espaço alocado no disco, de grandecapacidade, porém mais lenta.

SISTEMAS DE ARQUIVOS

Além dos processos, memórias e dispositivos, o sistema operacional tambémgerencia arquivos.

O sistema de arquivos se atrela aos outros vários subsistemas, por exemplo:Quando um arquivo é lido, ele precisa ser inicialmente localizado em uma memória,normalmente na secundária, e para isso, é necessário que o sistema de E/S faça a buscano disco, carregado nos espaço de endereços da memória principal, e assim, ser aberto,editado e salvo novamente no disco.

Um pouco diferente do sistema de blocos do disco, o sistema operacional adotauma hierarquia de diretórios para a manipulação mais organizada de arquivos. Esseconceito é bem similar ao visto no tópico de processos, onde um diretório raíz podepossuir vários subdiretórios, e esses subdiretórios serem pais de outros diretórios, umexemplo de árvore.

A princípio, um sistema em árvore, é mais lento (por conta das buscas porsubdiretórios) que um linear (onde todos os arquivos estão em um único lugar), porém, osistema operacional usa de um parâmetro denominado path, que é o endereço do arquivoa ser processado, um processo recebe esse parâmetro e não mais precisa efetuar buscaspara encontrar sua localização a cada iteração, o que torna o nível de organização, muitosuperior.

Outra vantagem é que ao inserir uma unidade de disco removível, o sistema dearquivos considera e trata esse dispositivo de armazenamento como um diretório, ou seja,a hierarquia e o acesso continuarão sendo o mesmo e pertencerá a mesma árvore dediretórios.

Page 5: Conceitos básicos de sistemas operacionais

5

SISTEMAS DE ENTRADA E SAIDA

Num sistema computacional, se fossemos resumi-lo, poderíamos dizer que é umsistema com entrada, processamento e saída. Esse é um modelo adotado para simplificarcomo as operações manipuladas pelo usuário interagem com o sistema operacional eretorna um resultado referente ao processamento dessas instruções. À medida que ossistemas computacionais se tornam mais complexos novos dispositivos vêm surgindo e éde responsabilidade de o sistema operacional gerenciá-los.

Todo sistema operacional possui um sistema de E/S. Em um sistemacomputacional de dispositivos on-board, podemos verificar que alguns ou todos elespossuem uma compatibilidade com o programa de E/S do sistema operacional, ou seja,eles são considerados independentes de dispositivos. Outros, normalmente off-board, secomportam de maneira diferente e necessitam de um programa “tradutor” que abstraia acamada física (dispositivo), e forneça uma boa comunicação com o sistema operacional.Esses softwares são denominados drivers de dispositivos específicos.

SISTEMAS DE PROTEÇÃO

Vejamos alguns exemplos de artifícios utilizados pelo sistema operacional paraevitar acessos indevidos durante o funcionamento de um sistema computacional.

HardwareQuem tem prioridade de acesso à memória? Quem pode ser deixado em segundo

plano numa chamada de E/S?

Essas e outras “perguntas-conflito” podem ser solucionadas pelo fato do sistemaoperacional trabalhar em modo supervisor, ou seja, o usuário e suas rotinas não podemter privilégios e acessos superiores às chamadas de sistema ou interrupções de E/S.

Se isso ocorresse, o usuário poderia escrever em locais de memória nãopermitidos ou não existentes, modificaria o temporizador da CPU, etc.

SoftwareQual seria a vantagem de qualquer usuário ter acesso aos arquivos do sistema

operacional e acesso aos seus arquivos pessoais? Ambas as perguntas podem serrespondidas com “nenhuma”. Uma modificação de arquivos do sistema pode trazergrandes problemas futuros ou imediatos e seus arquivos pessoais talvez não fossem paraserem vistos por qualquer pessoa.

Para isso, o sistema operacional toma conta da segurança própria e do seuusuário, foi com esse propósito que nos sistemas Unix, por exemplo, temos um sistema

Page 6: Conceitos básicos de sistemas operacionais

6

de segurança baseado em cadeia de bits, denominados bits rwx, onde a cadeia de bitsrepresentada por:

R – Permissão de leitura; W – Permissão de escrita; X – Permissão de execução;

Essas permissões são aplicadas aos níveis de usuário do sistema:

U – Usuários; G – Grupos; O – Outros;

Exemplo de permissão de arquivo:

LINHAS DE COMANDO (SHELL)

O shell é um software aplicativo responsável pela interpretação de comandos viaterminal, em sistemas sem interfaces gráficas, o shell é considerado o meio por onde ousuário escreve instruções (em texto no próprio terminal), que são então interpretadas acada linha de prompt, e assim é iniciada a execução do processo ou da árvore deprocessos.

Só com a finalização da execução, o shell estará apto novamente para orecebimento de novas instruções.

SISTEMAS OPERACIONAIS MONOLITICOS

Podemos considera um sistema operacional monolítico como uma aplicaçãocomposta por diversos módulos que são compilados separadamente e depois “linkados”de forma que possa interagir livremente uma com as outras constituindo um grande eúnico programa executável em modo supervisor.

Figura 1: Arquivo com permissões totais para usuário, permissões negadas para outros, e negação de escrita para grupos.

Disponível em: http://pt.wikipedia.org/wiki/Chmod

Page 7: Conceitos básicos de sistemas operacionais

7

Seu desempenho é bem maior que as demais estruturas de sistemas, porém comosão aplicações unidas, uma falha pode paralisar todo o núcleo. Por não possuirseparação de funcionalidades, essa liberdade de controle em demasia torna o sistemavulnerável.

SISTEMAS OPERACIONAIS EM CAMADAS

Essa arquitetura de organização trata os possíveis erros dos sistemas monolíticos,pois define hierarquicamente o sistema operacional em subsistemas sobrepostos, talquais as camadas do protocolo TCP/IP. Cada módulo oferece um conjunto de funçõesque pode ser usado por outros módulos de camadas superiores.

Fazendo uma analogia a interação usuário-computador, a vantagem daestruturação em camadas é isolar o sistema operacional (núcleo), facilitando suaalteração, depuração, e prevenção. Como são camadas dispostas uma sobre as outras(do menor ao maior nível), os níveis mais internos, por exemplo, os que se comunicamdiretamente com o núcleo ou hardware são mais protegidos.

MICROKERNELS

Assim como os computadores, processadores e quaisquer dispositivos, o kerneltambém vem aumentando seu desempenho e diminuindo de tamanho. As camadas dosserviços são agora dispostas em processos.

Cada processo agora tem a responsabilidade de gerenciar um conjunto específicode funções (em modo usuário, o que previne erros no núcleo) como: gerência dememória, gerência de arquivos, gerência de processos etc.

O núcleo que nessa arquitetura é minúsculo, o que torna um mecanismo muitocomplexo, porém eficiente. Sem esse novo paradigma, o kernel fornecia o controle e aabstração de camadas mais baixas do sistema operacional. Como microkernel, apenasgerencia a comunicação entre esses processos específicos como sua principal função.

CLIENTE SERVIDOR

Constituidora da parte da arquitetura de microkernels, o modelo Cliente Servidor ébem similar ao detalhado anteriormente. Alguns processos denominados servidores,recebem as solicitações de serviços (leitura e/ou escrita de bloco, por exemplo) enviadaspelos processos clientes (ambos, processos no microkernel).

Page 8: Conceitos básicos de sistemas operacionais

8

Como o kernel é muito pequeno e mais livre de códigos e operações de núcleo, asua funcionalidade se resume em coordenar a comunicação coerente entres os processosclientes e servidores.

MÁQUINAS VIRTUAIS

Um exemplo de máquina virtual bastante utilizada é a Java Virtual Machine, criada pela Sun Microsystems, que objetivava o suporte a linguagem Java. Quando se executa um código Java, o interpretador da máquina virtual se encarrega de gerar os próprios bytecodes, que são cadeias de bytes próprios do Java. Uma das vantagens de utilizar uma máquina virtual, é que será gerado o mesmo bytecode, o que torna a aplicação em Java altamente portátil.

Como é dependente de uma máquina virtual, o desempenho da aplicação éconsiderada visivelmente inferior a um código compilado em uma máquina real.

EXOKERNELS

É um caso especial de microkernel, com menos mecanismos em modo supervisor,ou seja, ainda beneficiados pelos acessos em modo usuário, os processos em modo deexokernel podem ter acesso ao hardware mais diretamente ao invés de ter de obterconfirmações de biblioteca ou de núcleo.

REFERÊNCIAS BIBLIOGRÁFICAS

MACHADO, F. B. Maia, L. P. Arquitetura de Sistemas Operacionais. 3. Ed. LTC. 2002.

TANENBAUM, Andrew S. Sistemas Operacionais Modernos. 2. Ed. Prentice Hall (Pearson), 2003.