Sistemas Operacionais e Lógica de Programação, Notas de aula de Sistemas Operacionais. Universidade Federal do Rio Grande do Norte (UFRN)
m_douglas1607
m_douglas16078 de novembro de 2017

Sistemas Operacionais e Lógica de Programação, Notas de aula de Sistemas Operacionais. Universidade Federal do Rio Grande do Norte (UFRN)

PDF (766 KB)
17 páginas
18Número de visitas
Descrição
Material de Estudo sobre S.O e Programação
20 pontos
Pontos de download necessários para baixar
este documento
baixar o documento
Pré-visualização3 páginas / 17

Esta é apenas uma pré-visualização

3 mostrados em 17 páginas

baixar o documento

Esta é apenas uma pré-visualização

3 mostrados em 17 páginas

baixar o documento

Esta é apenas uma pré-visualização

3 mostrados em 17 páginas

baixar o documento

Esta é apenas uma pré-visualização

3 mostrados em 17 páginas

baixar o documento

Material Didático do Instituto Metrópole Digital - IMD

Versão 2.0 - Todos os Direitos reservados

Sistemas Operacionais Aula 02 - SO: o gerente do seu computador (módulos de um SO, conceito de processo)

Apresentação

Apresentação

Nesta aula, você vai aprender como funciona um sistema operacional por dentro. Vamos apresentar os conceitos chaves que servirão de base para as próximas etapas desta disciplina, assim, você começará a entender quais são as ações executadas pelo sistema no momento em que computador está sendo utilizado. Você perceberá que aos poucos vamos inserir alguns termos técnicos, os quais irão exigir certo nível de conhecimento, mas não se assuste, pois a todo momento estaremos mostrando, por meio de exemplos, os significados de cada termo. Assim, será mais fácil compreender o conteúdo da aula.

Devemos alertá-lo que, devido à complexidade do assunto, você vai precisar se esforçar muito para tirar proveito do material que preparamos. É fundamental que você realize todas as atividades propostas e pesquise novas fontes sobre cada novo tópico. Nesse sentido, a internet oferece um vasto material que pode auxiliar nos seus estudos. Assim, para atingir a base necessária para entender os conceitos e problemas a serem discutidos nas aulas seguintes, é preciso que você dedique uma parte considerável do seu tempo nesta aula. Bons estudos!

 Vídeo 01 - Apresentação

Objetivos

Identificar, de forma geral, os principais módulos de um sistema operacional.

Reconhecer os conceitos e mecanismos básicos envolvidos no gerenciamento de processos.

Sistema Operacional: O Gerente

 Vídeo 02 - O Gerente

Quando instalamos um sistema operacional, estamos, de certa forma, definindo um gerente para os recursos do nosso computador. Você se lembra da analogia que fizemos na aula 1 entre o papel do Gustavo (coordenador de uma cooperativa de artesanato) e do sistema operacional no gerenciamento de um computador? E afinal, o que é preciso gerenciar em um computador? Um dos itens que precisam ser gerenciados são os programas (softwares) que você costuma utilizar quase ao mesmo tempo. A Figura 1 ilustra um cenário onde o usuário:

1. Acessa seus e-mails.

2. Usa a calculadora.

3. Usa um editor de imagens para editar uma foto.

4. Usa um programa de comunicação por voz (Skype, por exemplo).

5. Utiliza um editor de textos para fazer os trabalhos da escola.

Nas aulas da disciplina Arquiteturas de computadores, você viu que um programa é, basicamente, um conjunto de instruções que, ao serem executadas pelo computador, com a ajuda de um sistema operacional, realizam determinadas tarefas. Essa “lista de instruções” deve ser armazenada de forma que ela possa ser utilizada a qualquer momento – para tanto, precisamos guardar essas instruções em arquivos armazenados no HD de nosso computador. Vejamos a Figura 2 e, logo adiante, uma breve explicação sobre cada item enumerado da figura.

Figura 1 - Um usuário executando múltiplos programas em um PC Fonte: Autoria própria.

Para que um programa possa ser executado no seu computador, primeiramente, o código do programa (O código do programa consiste no conjunto de instruções que devem ser executadas. Não entraremos em detalhes sobre o que é o código do programa e suas instruções aqui, pois esses pontos serão abordados nas disciplinas de programação.) (lista de instruções, representada na figura pelo item 2) deve ser transferido do HD (item 1) para a memória principal (item 3); quando o programa estiver disponível na memória principal, o processador (5) acessa, então, as instruções, uma a uma, (4) com a finalidade de interpretá-las e executá- las. Cada instrução pode corresponder a uma entrada ou saída de dados, como, por exemplo, obter os dados que digitamos no teclado (6) ou imprimir documentos na impressora (7). A Figura 2 ilustra, de maneira geral, alguns elementos relacionados à execução de um programa.

Lembrando um pouco o que vimos na aula 1, sobre estruturação dos sistemas operacionais, vimos que programas em execução são chamados de processos. Um processo é formado por três partes principais:

Figura 2 - Elementos relacionados à execução de um programa Fonte: Autoria própria.

1. O código do programa (lista de instruções).

2. Os dados processados pelo programa.

3. O contexto – que consiste no conjunto de informações adicionais sobre o processo –, como e onde estão armazenados os dados e instruções.

Para que um programa qualquer possa ser executado em um computador, o sistema operacional precisa executar um conjunto de funções básicas. Fazendo um paralelo com o mundo real, para que um ator possa representar um papel em uma peça, um conjunto de funções básicas de suporte foi feito: um local precisou ser reservado para o espetáculo, o cenário precisou ser montado, a iluminação precisou ser preparada, os atores contratados. Se não fosse esse trabalho de suporte, o ator não poderia atuar.

Assim, para que um programa qualquer possa ser executado no seu computador, nos bastidores o sistema operacional realizará um conjunto de funções básicas:

1. O gerenciamento dos processos.

2. O gerenciamento da memória disponível no seu computador.

3. O gerenciamento dos arquivos existentes no computador.

4. O gerenciamento dos dispositivos de entrada e saída.

A seguir, iremos explicar de forma breve cada uma dessas funções, lembrando que nesta aula daremos apenas uma visão geral sobre essas funções. Nas próximas aulas veremos, detalhadamente, cada uma delas.

Atividade 01

1. Defina o que é um processo.

2. O que é necessário para um programa ser executado em um computador?

Gerenciador de Processos

 Vídeo 03 - Gerenciador de Processos

O conceito mais importante em sistemas operacionais é o de processos, e entendê-los é fundamental para quem estiver interessado em conhecer como os sistemas operacionais funcionam realmente.

Todas as ações que ocorrem no seu computador acontecem dentro de algum processo. Você deve estar lembrado quando, na aula 1, definimos processos como sendo programas em execução, ou seja, todos os aplicativos que usamos são, na verdade, processos. Mas, como os processos são criados a partir do código de seus respectivos programas? E como preparar os diversos componentes do computador (memória, HD, processador) para que os processos possam ser executados normalmente?

Para que você possa entender melhor esses conceitos, vamos fazer outra analogia do que ocorre no computador com a organização de uma mesa de estudos. Você deve ter muitas atividades escolares que precisam de sua dedicação e esforço para serem realizadas. Provavelmente, você tem um lugar preferido para estudar, mas vamos considerar que você tenha uma mesa de estudos própria, com gavetas onde é guardado todo seu material escolar e nela são feitos todos os seus trabalhos das mais diversas disciplinas (matemática, português, física, química etc.).

Vamos pensar que exista para cada disciplina uma lista de exercícios a ser resolvida. Então, para começar, qual o primeiro passo a ser realizado? Poderíamos considerar a ação de pegar das gavetas e colocar sobre a mesa as listas de exercícios que serão resolvidas, assim você teria acesso direto às questões para resolvê-las, uma de cada vez (Figura 3).

Se considerarmos que nossa mesa de estudos é a memória do computador, e que nós somos o processador, então, os programas são as listas de exercícios e quando a colocamos sobre a mesa, estamos deixando-as prontas para serem resolvidas, ou seja, nesse momento, cada lista deixa de ser apenas uma folha guardada na gaveta (ou HD, se considerarmos os programas) para se tornar parte de uma atividade, ou seja, de um processo. Associado a cada processo criado, existe uma quantidade de memória reservada, conhecida como espaço de endereçamento do processo (Podemos entender melhor o espaço de endereçamento de um processo quando fazemos um paralelo com nossa casa. Cada um de nós tem um endereço onde vivemos e guardamos nossos pertences. Se fôssemos um processo, a nossa casa seria o nosso espaço de endereçamento.) onde o processo pode ler e gravar dados. Nessa área de memória, encontramos:

Figura 3 - Mesa de estudos e listas de exercícios Fonte: Autoria própria.

1. O código do programa que será executado.

2. Os dados (informações) que são usados pelo programa.

Neste momento, você deve associar o conceito de espaço de endereçamento aos conceitos de variáveis globais e locais que você utiliza nas disciplinas de programação. Enquanto as variáveis globais são armazenadas em áreas de memória que podem ser acessadas durante todo o tempo de vida de um processo, as variáveis locais (definidas dentro de funções e procedimentos) são armazenadas em um espaço de memória provisória, (também chamada de pilha) que só permanecerá acessível enquanto a função ou procedimento estiver em execução.

 Vídeo 04 - Gerenciador de Processos pt.2

Gerenciador de Memória

 Vídeo 05 - Gerenciador de Memória

A memória é um componente importante do computador e deve ser cuidadosamente gerenciado, pois, apesar da grande evolução da tecnologia e do aumento crescente do tamanho da memória dos computadores atuais, os programas também estão crescendo na mesma proporção. Assim, o sistema operacional precisa lidar com as limitações da capacidade da memória para organizar os processos que estão em execução.

Vamos voltar ao exemplo da mesa de estudos? Imagine se todo o material sobre a mesa de estudos estiver bagunçado: papéis amontoados em um canto, livros espalhados e uma pilha de rascunhos jogados em sua frente. Será que você conseguiria estudar com essa desorganização?

Apesar de muitos estudantes tentarem estudar numa mesa com uma montanha de livros e papéis, não seria muito mais fácil reservar um tempo adicional para organizar sua mesa de estudos, aproveitando, de maneira organizada, toda a área da mesa? Pois é exatamente isso que o sistema operacional realiza.

Identificar quais partes da memória estão em uso e quais não estão, reservar espaço para os processos e deixar disponível as áreas que forem liberadas por um processo ativo ou quando um processo é encerrado, são algumas das atividades executadas pelo sistema operacional, no que se refere ao gerenciamento de memória. Assim, os programas não precisam se preocupar em como obter a memória necessária para ser executado.

Mas, o que será que acontece quando o espaço de endereçamento do computador não é suficiente para colocar todos os processos/atividades do sistema? Nesse caso, o que o sistema operacional poderia fazer? Uma solução simples seria encerrar alguns programas, liberando a área de memória deles. Essa solução tornaria os computadores mais limitados com relação à quantidade de processos ativos. Então, o que mais poderia ser feito?

Ainda considerando a analogia com a mesa de estudos, vamos pensar que você esteja montando um painel para sua aula de biologia e uma folha de cartolina ocupa quase toda a área de sua mesa; assim, praticamente não existiria espaço adicional para colocar o restante do material que você precisa (o seu livro de biologia e as revistas para o recorte de figuras). Pense ainda que na mesa só há espaço para colocar apenas um deles, e, durante toda a atividade, você vai precisar de todo o material. O que fazer, então, para que você não perca tanto tempo na construção desse painel?

Utilizando uma das gavetas da mesa de estudos para guardar o livro exatamente na página que você estava pesquisando ou as revistas nas páginas que serão recortadas, você poderá realizar uma troca rápida

entre as ações que serão executadas e, apesar do uso da gaveta tornar mais lento, ela permite que você possa realizar todas as atividades necessárias.

Assim funciona no computador quando existem processos demais, se considerarmos a quantidade de memória disponível. O sistema operacional, nesse caso, gerencia as trocas de dados entre a memória e o HD quando não existe espaço de endereçamento suficiente para todos os processos. Na aula de gerenciamento de memória, você aprenderá mais sobre essas atividades e as ações que são necessárias para a organização da memória.

Gerenciador de Arquivos

 Vídeo 06 - Gerenciador de Arquivos

Agora, imagine as gavetas de sua mesa de estudos. E se, ao abrirmos elas, todo o seu material escolar estivesse desorganizado? Você, provavelmente, perderia um bom tempo procurando por seus livros, revistas, listas de exercícios e qualquer material que precisasse.

Mas, se todo o conteúdo das gavetas estivesse organizado com áreas nas gavetas dedicadas para cada uma das disciplinas, então, seria mais prático e simples procurar por um determinado livro ou revista. E é exatamente dessa forma que os sistemas operacionais gerenciam os dados armazenados.

Assim, os programas podem acessar os dados armazenados nos discos por meio dos serviços disponibilizados pelo sistema operacional para manipulação de arquivos. Esses serviços são acionados através de mecanismos denominados como chamadas de sistemas; ações típicas associadas aos serviços de gerenciamento de arquivos consistem em criar, ler, gravar e remover arquivos, as quais podem ser realizadas nos processos de forma simples.

O conceito de diretório ou pasta de arquivos está relacionado à maioria dos sistemas operacionais como uma forma de agrupar os arquivos, possibilitando uma forma de organização hierárquica em que, dentro de um diretório, podem existir arquivos e outros diretórios. Essa estrutura pode ser comparada a uma árvore, pois no decorrer do tempo ela vai formando uma rede de diretórios e arquivos interligados a partir de um diretório raiz. A Figura 4 representa a relação de uma estrutura de arquivos organizada dessa forma. Na aula 3 foi apresentado um exemplo de uma hierarquia de diretórios usando a estrutura e nomenclatura normalmente empregada pelos sistemas Linux.

Figura 4 - Árvore de diretórios Fonte: Autoria própria.

Para os programas manipularem os arquivos, eles precisam descrever o nome do arquivo que deve especificar todo o caminho, que é a sequência de diretórios a partir do diretório raiz, até chegar ao arquivo. Um exemplo simples usando a árvore da Figura 4 seria considerando o caminho completo do arquivo listMat.txt:

/Disciplinas/Listas/Matemática/ListaMat.txt

Mas, essa não é a única forma a ser adotada para manipular um arquivo. Dado que para cada processo existe um diretório de trabalho atual, pode-se utilizar esse diretório para descrever o caminho parcial do arquivo a partir dele. Dessa forma, se o processo deseja manipular esse arquivo, ele pode, simplesmente, informar o caminho parcial, seguindo os ramos da árvore a partir do diretório de trabalho atual. Deve-se destacar que o diretório atual pode ser mudado pelo sistema operacional durante a execução do programa.

Além da informação do nome de caminho, a maioria dos sistemas operacionais atuais define mecanismos de segurança de dados que consiste em descrever níveis de permissão para que usuários possam ser controlados nas operações de acesso ou alteração dos diretórios e arquivos.

Por exemplo, cada processo recebe o código de identificação do usuário que o criou. Por meio desse código, é verificado o nível de acesso ao arquivo, no momento em que ele for manipulá-lo; assim, o sistema operacional pode verificar se o programa tem permissão de ler o conteúdo do arquivo e até mesmo alterá-lo.

Na aula sobre Gerenciamento de arquivos (Aula 7), vamos apresentar detalhes de como funciona esses mecanismos de segurança e apresentar os diferentes formatos e estruturas de arquivos, além de saber como identificar as principais diferenças entre elas.

Gerenciador de dispositivos de entrada e saída

 Vídeo 07 - Gerenciador de Dispositivos

Uma das principais funções dos sistemas operacionais é controlar todos os dispositivos de entrada e saída de dados, como, por exemplo: teclado, mouse, monitores, discos e impressoras. As partes do sistema operacional responsáveis pelos dispositivos de E/S (Entrada/Saída) devem fornecer uma forma simples para comunicação entre os dispositivos e o restante do sistema (por exemplo: o gerenciador de memória, o sistema de arquivos, e o gerenciador de processos) e que seja o mais independente possível do tipo de dispositivo. Assim, diversos hardwares podem ser acessados com os mesmos meios de comunicação (interface).

Para entender melhor esse tipo de controle, vejamos a relação de gerenciamento de um sistema de arquivos e o controle necessário para manipulação do dispositivo de disco onde os dados estão armazenados. Apesar do gerenciamento de dados ser feito através de uma estrutura de diretórios e arquivos, os diversos tipos de dispositivos de armazenamentos de dados não tratam os dados como arquivos em diretórios; na verdade, os dados são armazenados em blocos de tamanho fixo, em que cada um tem um endereço de onde poderão ser lidos e alterados.

Para o controle de operações de leitura e escrita, os dispositivos possuem integrados a eles um componente eletrônico capaz de controlar o restante do dispositivo e, assim, servindo como uma interface através de troca de sinais elétricos.

Esse componente eletrônico é conhecido como controladora ou adaptador do dispositivo e é por meio dela que o sistema operacional se comunica com o dispositivo de entrada e saída (Figura 5).

Claro que parte do controle do dispositivo de entrada e saída fica a cargo de componentes dos sistemas operacionais, que são módulos de código específico para cada tipo de dispositivo; esses componentes são conhecidos como drivers de dispositivos e através deles podemos ter acesso às respectivas controladoras.

Assim, os drivers podem ser organizados em módulos que tratam questões independentes e específicas de dispositivos. Como exemplo de módulos independentes do dispositivo, podemos citar o gerenciamento do sistema de arquivos, que pode tratar da leitura e escrita de dados, independente de qual dispositivo será utilizado, podendo ser um HD, um pendrive, ou mesmo um leitor de CD/DVD. Na aula de Gerenciamento de dispositivos de entrada e saída (Aula 6), trataremos sobre a relação entre controladoras, drivers e os mecanismos de tratamento de erros que podem ocorrer durante os processos de entrada e saída de dados.

 Vídeo 08 - Gerenciador de Arquivos pt.2

Figura 5 - Modelo para conectar CPU e memória com os dispositivos de E/S Fonte: Autoria própria.

Atividade 02

1. Quais as atribuições do gerenciador de processos?

2. Quais as atribuições do gerenciador de entrada e saída?

3. Quais as principais diferenças entre o gerenciador de memória e o gerenciador de arquivos?

Conclusão

Chegamos ao final da nossa aula.

Os conceitos que apresentamos até agora servirá de base para as próximas aulas, nas quais vamos discutir com mais detalhes como funciona internamente cada módulo de um sistema operacional.

Leitura Complementar

COUSTAN, Dave; FRANKLIN, Curt. Como funcionam os sistemas operacionais. Traduzido por HowStuffWorks. Disponível em: <http://informatica.hsw.uol.com.br/sistemas-operacionais.htm>. Acesso em: 6 dez. 2011.

Nesse texto, você vai encontrar uma explicação simples sobre as principais responsabilidades do sistema operacional. Boa leitura!

Resumo

Nesta aula, você estudou as principais funções gerenciais dos sistemas operacionais, assim como os conceitos básicos relacionados com o gerenciamento dos processos, da memória, dos arquivos e dos dispositivos de entrada e saída.

Autoavaliação

1. Quais são as principais partes que compõem um processo?

2. Quando a memória RAM de um PC não é suficiente para executar todos os processos que o usuário necessita, o que o sistema operacional pode fazer?

3. Quais as possíveis consequências para o usuário de um PC se o sistema operacional não realizasse o gerenciamento de arquivos?

Referências

TANENBAUM, Andrew S.; WOODHULL, Albert S. Sistemas operacionais: projeto e implementação. Trad. Edson Furmankiewicz. 2. ed. Porto Alegre: Bookman, 2000.

comentários (0)

Até o momento nenhum comentário

Seja o primeiro a comentar!

Esta é apenas uma pré-visualização

3 mostrados em 17 páginas

baixar o documento