Sistemas operacionais (4a. ed.)

Visualizações: 253
Clasificação: (0)

 

12 capítulos

Formato Comprar item avulso Adicionar à Pasta

1. introdução

PDF

22

Sistemas Operacionais

conceito básico

1.1

Em torno de um computador, existem usuários com problemas para serem resolvidos.

Por exemplo, um usuário precisa editar texto, enquanto outro precisa fazer a contabilidade da empresa. O problema de cada usuário será resolvido por um programa específico. No exemplo, um editor de textos e um sistema de contabilidade. O dispositivo físico capaz de executar esses programas é o hardware do computador.

Os programas possuem muito em comum. Por exemplo, tanto o editor de texto como a contabilidade precisam acessar o disco. A forma de acesso aos periféricos é a mesma para todos os programas. Para um melhor aproveitamento do hardware, vários usuários compartilham simultaneamente o computador. Entretanto, os programas podem apresentar necessidades conflitantes, pois disputam os recursos do equipamento. Por exemplo, o editor de texto e a contabilidade podem querer utilizar, ao mesmo tempo, a única impressora disponível.

O sistema operacional é uma camada de software colocada entre o hardware e os programas que executam tarefas para os usuários. Essa visão de um sistema computacional é ilustrada na figura 1.1. O sistema operacional é responsável pelo acesso aos periféricos; sempre que um programa necessita de algum tipo de operação de entrada e saída, ele a solicita ao sistema operacional. Dessa forma, o programador não precisa conhecer os detalhes do hardware. Informações do tipo “como enviar um caractere para a impressora” ficam escondidas dentro do sistema operacional. Ao

 

2. multiprogramação

PDF

38

2.1

Sistemas Operacionais

mecanismo básico

Em um sistema multiprogramado diversos programas são mantidos na memória ao mesmo tempo. A figura 2.1 mostra uma possível organização da memória. Nesse sistema, existem 3 programas de usuário na memória principal, prontos para serem executados.

Vamos supor que o sistema operacional inicia a execução do programa 1. Após algum tempo, da ordem de milissegundos, o programa 1 faz uma chamada de sistema. Ele solicita algum tipo de operação de entrada ou saída. Por exemplo, uma leitura do disco. Sem multiprogramação, o processador ficaria parado durante a realização do acesso. Em um sistema multiprogramado, enquanto o periférico executa o comando enviado, o sistema operacional inicia a execução de outro programa. Por exemplo, o programa 2. Dessa forma, processador e periférico trabalham ao mesmo tempo. Enquanto o processador executa o programa 2, o periférico realiza a operação solicitada pelo programa 1.

A maioria dos programas não precisa de toda a memória do computador. Na verdade, muitos programas ocupam uma pequena parcela da memória principal disponível. Sem multiprogramação, a memória não ocupada por um programa ficaria sem utilização.

 

3. programação concorrente

PDF

58

Sistemas Operacionais

Um programa que é executado por apenas um processo é chamado de programa sequencial. A maioria dos programas escritos são programas sequenciais. Nesse caso, existe somente um fluxo de controle durante a execução. Isso permite, por exemplo, que o programador realize uma “execução imaginária” de seu programa apontando com o dedo, a cada instante, a linha do programa que está sendo executada no momento.

Um programa concorrente é executado simultaneamente por diversos processos que cooperam entre si, isso é, trocam informações. Para o programador realizar agora uma “execução imaginária”, ele vai necessitar de vários dedos, um para cada processo que faz parte do programa. Nesse contexto, trocar informações significa trocar dados ou realizar algum tipo de sincronização. É necessária a existência de interação entre processos para que o programa seja considerado concorrente.

Embora a interação entre processos possa ocorrer através do acesso a arquivos comuns, esse tipo de concorrência é tratada na disciplina de Banco de Dados. A programação concorrente tratada neste livro, assim como nas disciplinas de Sistemas Operacionais, utiliza variáveis compartilhadas e troca de mensagens como mecanismos de interação entre processos.

 

4. gerência do processador

PDF

106

4.1

Sistemas Operacionais

bloco descritor de processo

Como foi visto, na multiprogramação, processos são interrompidos e mais tarde continuados. Por exemplo, suponha que o processo 1, executando, faça uma chamada de sistema. Ele é bloqueado, e um processo 2 passa a executar. Quando ocorrer a interrupção causada pelo periférico, uma possibilidade é suspender o processo 2 e retomar o processo 1. A maioria dos processos que está na fila de aptos já executou durante algum tempo, e esperam para receber o processador novamente. A única exceção são os processos novos, que entram no primeiro ciclo de processador.

Existem várias informações a respeito dos processos que o sistema operacional deve manter. No “programa” sistema operacional, um processo é representado por um registro. Esse registro é chamado de bloco descritor de processo ou simplesmente descritor de processo (DP). No DP, fica tudo que o sistema operacional precisa saber sobre o processo. Abaixo está uma lista de campos normalmente encontrados no descritor de processo:

 

5. entrada e saída

PDF

126

Sistemas Operacionais

Neste capítulo, faremos inicialmente um resumo de alguns conceitos básicos de arquitetura de computadores. O objetivo é revisar os mecanismos fundamentais de arquitetura de computadores que são essenciais na concepção de sistemas operacionais. Muitas das soluções aplicadas em sistemas operacionais dependem diretamente da disponibilidade de tais mecanismos. Na realidade, muitos desses mecanismos surgiram ao longo dos anos em função das necessidades específicas dos sistemas operacionais. Na sequência, discutiremos aspectos relacionados com a organização do software de E/S, pois uma de suas funções é “esconder” das camadas superiores detalhes específicos de cada dispositivo de E/S. Na medida do possível para uma classe de dispositivos de E/S, a interface deve ser a mesma (independência de dispositivos). Nós concluíremos este capítulo estudando de forma mais detalhada aspectos de hardware e de software de alguns dispositivos de E/S mais comuns, como discos, teclado, vídeo e placas de rede.

 

6. gerência de memória

PDF

154

Sistemas Operacionais

A técnica particular que determinado sistema operacional emprega depende, entre outras coisas, de o que a arquitetura do computador em questão suporta. As técnicas de gerência de memória estão intimamente ligadas ao hardware do computador. Em

Bach (1986), Comer (1984), Tanebaum e Woodhull (2008) e Vahalia (1996), podem ser encontradas as descrições de algumas soluções empregadas em sistemas operacionais específicos. Essas soluções variam com relação à funcionalidade oferecida e à complexidade dos mecanismos empregados. Na prática, as arquiteturas existentes no mercado possuem uma série de detalhes que tornam complexa a implementação dos mecanismos de gerência de memória. Uma excelente descrição de arquiteturas contemporâneas pode ser encontrada em Jacob e Mudge (1998a, 1998b).

6.1

memória lógica e memória física

A memória lógica de um processo é aquela que o processo enxerga, ou seja, aquela que ele é capaz de endereçar e acessar usando as suas instruções. Os endereços manipulados pelo processo são endereços lógicos. Em outras palavras, as instruções de máquina de um processo especificam endereços lógicos. Por exemplo, um processo executando um programa escrito na linguagem C manipula variáveis tipo pointer. Essas variáveis contêm endereços lógicos. Em geral, cada processo possui a sua memória lógica, que é independente da memória lógica dos outros processos.

 

7. memória virtual

PDF

176

Sistemas Operacionais

No capítulo anterior, foram apresentadas técnicas de gerência de memória que carregam para a memória principal todo o programa a ser executado. Entretanto, um programa não precisa estar todo na memória para executar. Muitas partes de um programa não são necessárias todo o tempo. Por exemplo, considere o programa editor de texto. Normalmente, os editores de texto oferecem aos usuários funções que raramente são utilizadas. As rotinas que implementam tais funções somente precisam estar na memória naqueles raros instantes em que são realmente necessárias. Um outro exemplo são as partes de um programa que tratam exceções, como erro no acesso aos arquivos. Essa parte de um programa somente é necessária quando efetivamente ocorre um erro, o que é pouco frequente. Se cada programa ocupar, a cada momento, somente a memória física que realmente necessita, haverá uma substancial economia de espaço na memória principal. O espaço liberado permitiria a carga e execução simultânea de mais programas, ou então, programas maiores poderiam ser executados. Programas poderiam até ser maiores que a própria memória física, pois apenas uma parte deles precisaria estar na memória a cada instante. A memória virtual é a técnica que permite o gerenciamento dessas necessidades.

 

8. sistema de arquivos

PDF

208

Sistemas Operacionais

É importante observar que sistemas de arquivos implementam um recurso em software que não existe no hardware. O hardware oferece simplesmente espaço em disco, na forma de setores que podem ser acessados individualmente, em uma ordem aleatória.

O conceito de arquivo, muito mais útil que o simples espaço em disco, é uma abstração criada pelo sistema operacional. Nesse caso, temos o sistema operacional criando um recurso lógico a partir dos recursos físicos existentes no sistema computacional.

8.1

conceitos básicos

Arquivos são recipientes que contêm dados. Cada arquivo contém dados que um usuário, por alguma razão, resolveu colocar juntos no mesmo arquivo. Em geral, cada arquivo contém um conjunto de dados que possui algum significado prático para o usuário ou para o sistema. Um arquivo pode conter um programa executável, um módulo de um programa fonte, um texto, uma planilha, uma figura, uma fotografia, uma música, um conjunto de arquivos compactados, etc. Este capítulo discute diversos aspectos relacionados com o uso dos arquivos, e diversas técnicas usadas na implementação de arquivos, além de mostrar como o espaço livre de um disco pode ser gerenciado.

 

9. linux

PDF

246

Sistemas Operacionais

O sistema GNU/Linux é um sistema livre que pode ser facilmente obtido na Internet.

O Linux é um sistema UNIX-like e emprega muitas soluções comuns a outros sistemas tipo UNIX. Neste capítulo, nós apresentaremos um breve histórico do Linux para, em seguida, estudarmos detalhes de sua arquitetura interna, ilustrando como o Linux implementa os conceitos estudados neste livro. Nós iniciaremos esse estudo com o conceito de processos. Em seguida, veremos como o Linux gerencia o recurso processador, analisando o seu mecanismo de escalonamento. A etapa seguinte será a gerência de memória e a memória virtual, passando pelo swap. Na sequência, o estudo do sistema de arquivos do Linux, para finalmente concluir com alguns aspectos relacionados à gerência de entrada e saída.

9.1

histórico, distribuições e versões

A origem do Linux é bastante modesta. Ele foi desenvolvido pela iniciativa de um estudante finlandês chamado Linus Torvalds. A principal motivação de Linus foi a sua decepção pessoal com o sistema minix. O minix é um sistema simples, baseado em UNIX, desenvolvido por Andrew Tanenbaum e sua equipe para fins didáticos e amplamentente difundido no meio acadêmico no início dos anos 90.

 

10. windows

PDF

274

10.1

Sistemas Operacionais

histórico

A história do Windows inicia com o Windows NT e com o desejo da Microsoft de criar um sistema operacional que explorasse as inovações tecnológicas apresentadas pelos processadores no final da década de 80, início da década de 90. O objetivo era desenvolver um sistema operacional multitarefa para ser utilizado tanto em ambientes monousuário como multiusuário. O nome Windows é originário de um sistema de janelas

(Windows 3.x for Workgroup) projetado para competir com a interface usuário dos computadores Macintosh (Apple). Esse ambiente de janelas emprestou a sua “aparência” para a primeira versão do Windows NT. A sigla NT vem de New Technology, e foi criada para caracterizar a nova filosofia que orientou a sua concepção.

A primeira versão do Windows NT (versão 3.1) foi lançada em 1993 e constituiu o primeiro sistema operacional de 32 bits da Microsoft. Esse sistema operacional caracterizava-se por fornecer uma compatibilidade com o sistema operacional MSDOS, com aplicações desenvolvidas para o “velho” sistema de janelas (Windows

 

11. virtualização

PDF

296

Sistemas Operacionais

A virtualização e o uso de máquinas virtuais se tornaram um assunto destaque no mundo da tecnologia da informação (TI), apesar de não ser exatamente uma novidade. A introdução da linguagem de programação Java nos anos de 1990 trouxe consigo a noção de máquina virtual, mas sua origem é mais antiga. O termo máquina virtual foi introduzido na década de 1960 como um conceito de sistemas operacionais para indicar uma abstração em software de um sistema computacional em hardware. Já nos anos 1970 era comum que cada computador (mainframe), mesmo de um só fabricante, tivesse seu próprio sistema operacional causando problemas de portabilidade e de sistemas legados. Na época, a solução encontrada foi explorar à risca o conceito de máquina virtual, ou seja, uma camada de software que oferece um ambiente completo similar ao de uma máquina física que executa sobre um sistema computacional nativo. Uma máquina virtual contém seu próprio sistema operacional, bibliotecas e aplicativos e é totalmente independente e isolada das demais.

 

Anexo A - montadores, ligadores e carregadores

PDF

324

Sistemas Operacionais

Este texto supõe o conhecimento prévio sobre o que é linguagem de montagem.

Embora alguma experiência com programação em linguagem de montagem seja útil, apenas as noções básicas desse tipo de programação são essenciais. Também são necessários conhecimentos básicos na área de arquitetura de computadores. É importante observar que o objetivo aqui é descrever os princípios gerais dos montadores, ligadores e carregadores, e não detalhar toda a tecnologia disponível hoje para a construção de tais ferramentas. Por exemplo, montadores são atualmente construídos por meio da utilização do enorme arsenal de algoritmos disponíveis na área de compiladores. Caso o objetivo do texto fosse capacitar o leitor a construir um montador profissional, seria necessário descrever técnicas para a construção de compiladores, o que vai muito além dos objetivos deste texto. Compiladores são descritos por Price e

Toscani (2000). Nas próximas seções, os montadores, ligadores e carregadores serão descritos na ótica dos sistemas operacionais. Isso significa que o texto dá ênfase aos aspectos que diretamente afetam, ou são afetados, pelo comportamento do sistema operacional sobre o qual o programa sendo montado/ligado/carregado vai executar.

 

Detalhes do Produto

Livro Impresso
eBook
Capítulos

Formato
PDF
Criptografado
Habilitada
SKU
BP00000042603
ISBN
9788577806874
Tamanho do arquivo
2,2 MB
Impressão
Desabilitada
Cópia
Desabilitada
Vocalização de texto
Não
Formato
PDF
Criptografado
Habilitada
Impressão
Desabilitada
Cópia
Desabilitada
Vocalização de texto
Não
SKU
Em metadados
ISBN
Em metadados
Tamanho do arquivo
Em metadados