PRONATEC SISTEMAS OPERACIONAIS MÓDULO 2. Prof. Kilmer Pereira kilmer_pereira@yahoo.com.br



Documentos relacionados
Sistemas Operacionais Processos e Threads

CAPÍTULO 2 CARACTERÍSTICAS DE E/S E PORTA PARALELA

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira

Sistemas Operacionais Gerência de Dispositivos

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

Capacidade = 512 x 300 x x 2 x 5 = ,72 GB

Processos e Threads (partes I e II)

Sistema Operacional Correção - Exercício de Revisão

Capítulo 5 Gerência de Dispositivos

Sistema de Arquivos FAT

Programação Concorrente Processos e Threads

Prof.: Roberto Franciscatto. Capítulo 1.2 Aspectos Gerais

Disciplina: Introdução à Informática Profª Érica Barcelos

Sistemas Operacionais. Prof. André Y. Kusumoto

Escalonamento no Linux e no Windows NT/2000/XP

SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA

Sistemas Operacionais: Sistema de Arquivos

3. Arquitetura Básica do Computador

Armazenamento Secundário. SCE-183 Algoritmos e Estruturas de Dados II

Prof.: Roberto Franciscatto. Capítulo 1.1 Introdução

Sistemas Operacionais

O que veremos nesta aula? Principais Aspectos de Sistemas Operacionais. Visão geral de um sistema computacional

Organização e Arquitetura de Computadores

Prof. Esp. Lucas Cruz

Sistemas Operacionais

Sistemas de Informação. Sistemas Operacionais 4º Período

SISTEMA DE ARQUIVOS. Instrutor: Mawro Klinger

Sistemas Operacionais

Sistemas Distribuídos

Sistema de Arquivos. Ambientes Operacionais. Prof. Simão Sirineo Toscani

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar

Sistemas Operacionais

MANUTENÇÃO DE MICRO. Mário Gomes de Oliveira

Everson Scherrer Borges João Paulo de Brito Gonçalves

UFRJ IM - DCC. Sistemas Operacionais I. Unidade IV Sistema de arquivos. Prof. Valeria M. Bastos Prof. Antonio Carlos Gay Thomé 13/06/2012 1

Organização de Computadores 1

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 04 - Concorrência. Cursos de Computação

Fundamentos de Sistemas Operacionais

Sistemas Operacionais

Figura 01 Kernel de um Sistema Operacional

Curso de Instalação e Gestão de Redes Informáticas

AULA 5 Sistemas Operacionais

Sistemas Operacionais Introdução. Professora: Michelle Nery

7 Processos. 7.1 Introdução

Introdução aos Computadores

GERENCIAMENTO DE DISPOSITIVOS

A memória é um recurso fundamental e de extrema importância para a operação de qualquer Sistema Computacional; A memória trata-se de uma grande

6 - Gerência de Dispositivos

EXEMPLO: Processo para atualização da hora Processo para monitoramento da necessidade de proteção de tela. Figura Exemplo

Visão Geral de Sistemas Operacionais

Sistemas Operacionais

Máquina de estados UNIX O

4 Estrutura do Sistema Operacional Kernel

Máquina de estados UNIX O. Sistemas Operacionais 2008/1Profa. Patricia S.O. computação: recursos D. S.O S.O. controla eventos no sistema de

SISTEMAS OPERACIONAIS. Prof. André Dutton

Sistemas Operacionais. Roteiro. Hardware. Marcos Laureano

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

1.1. Organização de um Sistema Computacional

ESTUDO DE CASO WINDOWS VISTA

Tipos de sistemas operacionais

Setores Trilhas. Espaço entre setores Espaço entre trilhas

Acadêmicos: Luís Fernando Martins Nagata Gustavo Rezende Vinícius Rezende Santos

Introdução à Computação: Sistemas de Computação

1.2 Tipos de Sistemas Operacionais

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

O hardware é a parte física do computador, como o processador, memória, placamãe, entre outras. Figura 2.1 Sistema Computacional Hardware

Notas da Aula 17 - Fundamentos de Sistemas Operacionais

Arquitetura de Computadores. Sistemas Operacionais IV

1. CAPÍTULO COMPUTADORES

ROM-BIOS Inicialização Sistemas de Arquivos Formatação

Unidade Central de Processamento (CPU) Processador. Renan Manola Introdução ao Computador 2010/01

SIMULADO Windows 7 Parte V

Guia Rápido de Instalação Ilustrado

SISTEMAS OPERACIONAIS

Sistemas Operacionais 2014 Introdução. Alexandre Augusto Giron

1º Estudo Dirigido. Capítulo 1 Introdução aos Sistemas Operacionais

Dispositivos de Entrada e Saída

BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia

Estruturas do Sistema de Computação

Arquitetura e Organização de Computadores I

ARQUITETURA DE COMPUTADORES

Sistemas Operacionais

Engenharia de Software III

Introdução ao Modelos de Duas Camadas Cliente Servidor

FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES

Sistemas Operacionais

Gerenciador de Entrada/Saída

SISTEMAS OPERACIONAIS. Apostila 01 Assunto: Tipos de Sistemas Operacionais UNIBAN

Arquitetura de Computadores. Introdução aos Sistemas Operacionais

CONCEITOS BÁSICOS DE UM SISTEMA OPERATIVO

10 DICAS DE TECNOLOGIA PARA AUMENTAR SUA PRODUTIVIDADE NO TRABALHO

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 10

Hardware e Software. Exemplos de software:

ARQUITETURA DE COMPUTADORES

Aula 3. Sistemas Operacionais. Prof: Carlos Eduardo de Carvalho Dantas

Introdução aos Sistemas Operativos

Transcrição:

PRONATEC SISTEMAS OPERACIONAIS MÓDULO 2 Prof. Kilmer Pereira kilmer_pereira@yahoo.com.br

O Sistema Operacional (S.O.) é um programa de computador (software) que fica entre as aplicações e o equipamento hardware). Ele gerencia todos os recursos do sistema de forma organizada e otimizada. Ele habilita a interação das aplicações com o hardware do computador.

O S.O. é o primeiro programa a ser executado depois de ligar o computador. Ele fica o tempo inteiro ativo até que o computador seja desligado. Inclusive é desligado através dele! Ele controla a execução de todos os outros programas no computador.

A maioria dos fabricantes de sistemas operacionais criou um ciclo de vida dos seus produtos, que dura em média 4 anos. Abaixo estão os diferentes tipos de sistemas operacionais: Desktop: utilizado em dispositivos como notebooks, Pcs, Windows, Linux, Mac OS, etc. Esse dispositivo é capaz de controlar teclados, mouses, monitores, impressoras e diversos dispositivos externos, sendo criado para ser simples de operar e ter algum nível de segurança para o usuário final. Embarcados ou embutidos : realiza tarefas predefinidas para equipamentos específicos, não tem interface gráfica e não é configurável. Caso seja necessário modificar alguma tarefa, esse sistema deve ser reescrito completamente. Smartphones, computadores de bordo, sistemas para impressoras são exemplos de embarcados.

Tempo Real: utilizados em linhas de produção de indústrias e outros sistemas de automação e de medições. Esse tipo de sistema tem uma arquitetura totalmente criada para que as tarefas sejam realizadas em tempo real, através de software ou de hardwares, já que elas devem ser realizadas o mais rápido possível. O desempenho pode ser medido em tempo real e os outros controles são realizados em tempo real. Paralelos: sistemas com mais de uma CPU (Central Processing Unit) que compartilham recursos como memória, barramento e outros dispositivos periféricos. Os paralelos são altamente confiáveis, já que otimizam todo o processamento e todos os recursos do sistema. Distribuídos: vários dispositivos diferentes realizam a mesma tarefa, compartilhando os recursos de hardware. A internet, por exemplo, é im tipo de sistema distribuído.

Os sistemas operacionais são softwares que gerenciam o hardware (todos os elementos), outros softwares e aplicativos, a fim de que todos esses elementos trabalhem em conjunto. Por isso, é comum definir a função dos sistemas operacionais para: Controlar o hardware; Controlar o software; Fornecer a interface gráfica; Controlar os sistemas de arquivos. Em outras palavras, dizer que um sistema operacional é utilizado para algum fim específico é, portanto, diferente de defini-lo, já que há diferentes designações. Atualmente, os sistemas operacionais são separados das aplicações e criados para que funcionem corretamente com qualquer tipo de hardware, a partir das especificações técnicas de cada fabricante.

FUNDAMENTOS DE SISTEMAS OPERACIONAIS O sistema operacional está no nosso computador, no tablet, celular, gps, cabine de avião, entre outros. Fazendo a interação das aplicações como os componentes eletrônicos. Uma forma de compreendermos o computador é através de suas camadas. Quando o usuário digita uma palavra em um editor de texto, por exemplo, ele consegue deixar escrito na tela, sem nenhum conhecimento em circuitos eletrônico, mesmo sabendo que no fundo o que fez os pixels ascenderem naquelas exatas posições formando uma palavra foram os circuitos eletrônicos que enviaram impulsos elétricos para o monitor. Um programador também não precisa ter tais conhecimentos para desenvolver um editor de texto, pois o aplicativo também precisa ter tais conhecimentos para desenvolver um editor de texto, pois o aplicativo também não faz a interação direta com a máquina. Mais adiante compreenderemos a computação em camada e entender quais camadas interagem entre si.

Na quarta geração dos computadores, principalmente com o lançamento do Personal Computer da IBM, proporcionou o surgimento de várias empresas de software. Ainda mais por conta do MS-DOS em que se podia executar software de fornecedores independentes. Isso também por conta do sistema operacional fazer interação com memória, processador e demais periféricos permitindo que os desenvolvedores em geral focassem nos principais requisitos do software em desenvolvimento. Um dos serviços do Sistema Operacional é o API (interfaces de programação de aplicativos) que contribui para manipular o hardware a outra aplicação. Por meio de chamadas ao sistema do API, ocorre a instrução detalhada de como o sistema operacional irá trabalhar. Uma das razões de sucesso no MS-DOS foi oferecer um ambiente propício para desenvolvimento. Com vários aplicativos desenvolvidos para MS-DOS muitas pessoas adquiriram este sistema operacional e, consequentemente, o Personal Computer. Com essa base de aplicação estabelecida, tem-se uma gama de usuários fidelizados, em outras palavras, com grande resistência para mudar de plataforma. Para fazer todas as suas tarefas o Sistema Operacional consiste em um conjunto de rotinas que, como qualquer outro programa, é executado pelo processador. A diferença é que no Sistema Operacional, essa atividade é realizada de forma assíncrona, ou seja, não é executada de uma forma linear, mas executadas concorrentemente conforme a realização dos eventos externos.

Características esperadas no Sistema Operacional Eficiência: é bem comum se dizer que um sistema é eficiente ou não é eficiente, ou ainda que se tornou mais eficiente. Essa é uma forma de dizer quanto tempo o processador leva para concluir determinada tarefa. Robustez: quando se diz que um sistema operacional é robusto, significa que ele resiste a falhas, tornando-se confiável. Quando sistema não é robusto, costuma travar por pequenas falhas. Escalabilidade: Sistemas assim podem receber upgrade, acrescentando recursos. Extensibilidade: Capta as novas tecnologias executando tarefas que vão além do seu projeto original.

Portabilidade: permite que o sistema rode em várias configurações de hardware. Segurança: protege recursos de invasores Interatividade: responde com agilidade às ações do usuário. Usabilidade: que tem base para receber vários grupos de usuários.

MÁQUINA DE CAMADA Se pensarmos no computador apenas em questão de hardware, isso é: circuitos eletrônicos, placas, cabos e fontes, pouco nos serviria. É necessário o software para gravarmos algo sob o disco, enviar à impressora e a tantas outras funções que o computador nos oferece. Existe um tipo de linguagem de computação, muito mais popular na época dos primeiros computadores, chamada linguagem de máquina. Essa linguagem exige um grande conhecimento de arquitetura de hardware, consequentemente, era muito mais complexo o trabalho de programar. Com o Sistema Operacional, esse trabalho se tornou muito mais simples, pela sua função de interação entre usuário e computador. Logo a simplicidade também trouxe maior confiabilidade e eficiência.

Compreendendo o computador em camadas, temos 2 grandes níveis. Hardware (nível 0) e Sistema Operacional (nível 1). Mesmo com um hardware, o usuário interage apenas no nível 1, como se o nível 0 fosse inexistente. Essa visão modular e abstrata é chamada de Máquina Virtual. Existe na verdade mais níveis, mas o nível que o usuário estiver interagindo torna os níveis acima e abaixo imperceptíveis. Aplicativo Utilitários Sistemas Operacionais Linguagem de Máquina Microprogramação Circuitos eletrônicos Ambientes de Sistemas Operacionais Sistemas Embarcados

Os Sistemas Operacionais podem ser classificados em Monoprogramáveis (Monotarefas), Multiprogramáveis (Multirarefas) ou com Múltiplos Processadores. Monoprogramáveis nos referimos a computadores mais antigos que realizavam uma tarefa por vez. Nesse caso o processador trabalha com exclusividade para um processo. A desvantagem é que o computador fica ocioso. Assim sendo, se 4 tarefas forem feitas em um monoprogramável e em um multiprogramável, essas serão executadas de forma mais rápida no multiprogramável, pois o sistema não ficará ocioso uma única vez, e poderá usar sua capacidade máxima de processamento. Assim, o multiprogramável se torna mais rápido e mais econômico. Ainda consegue compartilhar recursos com vários usuários, como a impressora, sendo mais econômico.

No sistema com multiprocessadores, o computador pode sempre se aprimorar, adicionando mais processadores; quando houver uma falha o sistema não trava pois um processador ainda estará disponível; e a carga é sempre balanceada, não sobrecarregando ninguém. Esse sistema também pode funcionar com dual-core (ou superiores) ou até com vários computadores interligados. Sistemas Embarcados: Possui recursos para funcionar dispositivos como celulares. O segredo de um bom sistema embarcado está no bom gerenciamento de recurso, ou seja, quem terá acesso e quais serão os seus privilégios. É um sistema limitado em relação a código e armazenamento. Sistema de Missão Crítica: no ambiente de tempo real as tarefas são realizadas pelas suas prioridades para ter a certeza que as instruções serão executadas em um curto prazo. Exemplo: Em uma plataforma petroquímica em que qualquer atraso na execução pode gerar um acidente trágico ou numa cabine de controle de voo, ou no piloto automático de avião, o ambiente necessariamente deve ser em tempo real, para responderem imediatamente a eventos críticos.

Os Sistemas Operacionais Tempo Real se dividem em não crítico e crítico. Ambos garantem o início da execução de um processo assim que esse for solicitado, mas o crítico também garante a conclusão do mesmo no tempo certo. Críticos: também chamados de Hard RTOS ou Rígidos; Tempo de execução da tarefa (deadline), não pode sofrer atraso; Controle de vôo, controle de esteiras de fábricas, sinais de trânsito, usinas nucleares, equipamentos de monitoramento cardíaco, sistema de freios automotivos ABS entre outros. Não Críticos: também chamados de Soft RTOS ou Moderados; Tempo é parâmetro fundamental, porém a falha ou retardo é aceitável, não provocando danos irreversíveis; Leitores de CD e DVD, mp3, Playstation entre outros.

Sistemas Críticos de Negócios: muito usado para o E-commerce pelos seus serviços web e de banco de dados. Máquina Virtual: um software que simula um computador. Entre várias vantagens, a máquina virtual permite portabilidade, tornando um software acessível em várias plataformas.

GERENCIAMENTO DE MEMÓRIA E DISCOS RÍGIDOS Atualmente as memórias RAM (Random Access Memory) são muito baratas, porém não são ilimitadas, fazendo com que seja necessário entender de que maneira o sistema operacional e os outros dispositivos utilizam esse recurso, todos os programas têm suas variáveis (globais ou locais) armazenadas em RAM, para que sejam utilizadas quando necessárias. Esse processo de armazenamento é classificado como alocação. A hierarquia de uso das memórias ocorre da seguinte maneira: PROCESSADOR CACHE RAM HD Existem três tipos de alocação: Alocação dinâmica: neste tipo de alocação, os objetos são alocados dinamicamente pelos programas e uma entidade chamada garbage collector (cole lixo), que remove os objetos quando não estiverem mais sendo utilizados.

Alocação estática: um programa é executado e o sistema operacional sabe exatamente quais blocos alocar e quando remover. Alocação local: utilizado pelas funções e procedimentos de um programa. DMA É um dispositivo de hardware que faz a transferência dos dispositivos periféricos diretamente para a RAM. Esse sistema permite que alguns dispositivos como discos, placas gráficas, rede e som, entre outros, acessem a memória do sistema, liberando o processador para outras tarefas. Ao receber uma solicitação de leitura de um arquivo no disco, esse dispositivo controla toda a operação, lendo os arquivos de disco e alocando-os na RAM. A DMA pode operar no modo slave (escravo) ou no modo master (mestre). Modo slave, o processador acessa a DMA modifica os registradores internos para configurar a transferência, enquanto no modo master, o DMA assume o comando dos barramentos de dados, de controle e de endereço para realizar todas as transferências de dados

Memória Física e Virtual Memória física: é finita e, com o passar do tempo, toda a disponibilidade é consumida na medida em que são instalados, atualizados e as novas necessidades precisam ser atendidas. Memória virtual: em contra partida, se baseia no mecanismo das páginas, as quais possuem tamanho único e fixo, facilitando os algoritmos de remoção de transferência e de formatação dessas páginas no disco Vale ressaltar que as memórias trabalham na frequência do barramento da placa mãe e os discos rígidos são 100000 vezes mais lentos em uma situação em que há falhas de paginação. Portanto, a cada nova requisição, o disco realiza um novo acesso, levando todo o sistema a uma lentidão maior.

Discos Rígidos São dispositivos mecânicos altamente especializados e sensíveis que gerenciam a leitura e a escrita dos arquivos em disco, o que demanda de vários processos realizados simultaneamente. O dispositivo responsável pela gravação dos arquivos na superfície do disco é a cabeça leitura/gravação, a qual é movida constantemente para que as leituras e as gravações sejam realizadas com sucesso. Esse processo é classificado com seeking (busca). Devido ao fato de esse deslocamento ser lento, há a necessidade de algoritmos de escalonamento que minimizam o seek.

Disco rígidos Disco de plástico ou metal recoberto de material magnético -Pratos Dados são gravados e, posteriormente, recuperados através de uma mola condutora (cabeçote de leitura e gravação). - Escrita: o cabeçote magnetiza o disco, via a aplicação de uma tensão elétrica. - Leitura: a variação do campo magnético provocado pela rotação do disco, gera uma corrente elétrica no cabeçote de leitura. - Rotação típica: 60 a 200 rotações por segundo Organização dos Discos Rígidos Prato é organizado em trilhas - Círculos concêntricos - A largura da trilha corresponde à largura do cabeçote de leitura/escrita Trilhas são separadas por Gaps, para evitar problemas de alinhamentos

Quantidade de bits por trilha Constante - Trilhas mais internas possuem uma densidade maior de bits/polegada - Tecnologia CAV (Constant Angular Velocity) Variável - Tecnologia CLV (Constant Linear Velocity) CDROM

A transferência de dados para o disco é feita em blocos Tipicamente, bloco é menor que a capacidade de uma trilha Trilha é subdividida em unidades de tamanho fixo setores Setores Dados Informações de Controle A definição de trilhas e setores é feita pela formatação física do disco na fábrica

Disco com 4.1 Gigabytes 255 cabeças 63 setores de 512 bytes 525 cilindros Capacidade = 255 x 63 x 512 x 525 O sexagésimo quarto setor mantém um mapa de setores na trilha A tecnologia atual permite até 8 pratos com 16 cabeçotes A diferença no número de cabeçotes é lógico

Disco rígido - Acesso de Dados Menor unidade de transferência é um bloco lógico. Composto por um ou mais setores físicos Acessar dado implica em localizar trilha, superfície e setor. Método CHS (Cylinder, Head, Sector) Método LBA (Linear Block Addressage) Conversão de bloco lógico para sua localização física não é um mapeamento direto, pois pode haver setores defeituosos, além do número de setores por trilha não ser constante. Tempo de posicionamento (seek time). Tempo necessário para posicionar o cabeçote na trilha desejada Tempo de latência rotacional. Tempo necessário para atingir o início do setor a ser lido/escrito Tempo de transferência. Tempo para escrita/leitura dos dados

FCFS (SRved) ou FIFO: é o algoritmo mais simples e lento, no qual as requisições são atendidas na ordem em que os pedidos são realizados. O primeiro que chega será o primeiro a ser executado; SSTF (Shorterst): é uma fila de prioridades, onde a prioridade é o menor deslocamento do braço no cilindro do disco os próximos pedidos são reordenados em relação ao cilindro atual, pode ocorrer postergação indefinida, quando uma solicitação é realizada e o cilindro está muito distante. SCAN: não apresenta postergação, pois atende requisições na direção corrente do braço do disco que, ao chegar ao fim, o braço se move na direção oposta atendendo as outras requisições. É classificado como algoritmo do elevado; CSCAN (Circular Scan): realiza a pesquisa no sentido da varredura do mais interno, eliminando um problema existente no SCAN que, ao inverter o sentido de varredura, o SCAN atende as requisições mais próximas do último cilindro, ou seja, aquelas que estão mais distantes são atendidas posteriormente.

GERENCIAMENTO DE E/S À MEMÓRIA Monitores, teclados, mouses, mesas digitalizadoras, unidades de armazenamento externo, placas de rede, som, entre outros, são considerados dispositivos de entrada não só por permitir a comunicação do homem com o computador, mas também com o mundo. Esses dispositivos são classificados como periféricos, de acordo com a sua funcionalidade e classificados em: Periféricos de Entrada; Periféricos de Saída; Periféricos de Entrada/Saída. Além desses, há ainda outros tipos de periféricos, como celulares, tablets, câmeras, entre outros, que podem se comunicar com os computadores.

Os Chipsets são circuitos integrados localizados próximo ao processador. Existem dois tipos, que são conhecidos como North Bridge (Ponte Norte) e South Bridge (Ponte Sul).

Tipos de E/S SISTEMAS OPERACIONAIS Programada: ao executar um programa qualquer, o processador tem controle total sobre as operações de E/S, como é o caso do estado do dispositivo (conectado ou desconectado), a transferência de dados entre o dispositivo e o processador e, além disso, o envio de comandos específicos. Todos esses periféricos trocam informações através dos barramentos e utilizam portas (paralelas ou seriais) para a conexão com o sistema, tendo uma controladoria, geralmente uma placa. O barramento é um conjunto de linhas de comunicação (possíveis de serem visualizadas nas placas de Circuito Impresso) dividido em três funções: Barramento de Dados: transferência de dados entre o periférico e o computador, ou seja, é bidirecional; Barramento de Endereço: endereça os blocos de memória alocados que o processador deseja acessar. Esse barramento do processador para as memórias é unidirecional; Barramento de Controle: controla o acesso e o uso dos barramentos de dados e de endereços.

Interrupção SISTEMAS OPERACIONAIS Indica ao processador os eventos sobre os periféricos e os outros itens do sistema. Por isso, quando ela ocorre, o processador cessa e verifica a chamada como, por exemplo, um comando no teclado, um clique do mouse ou alguma ação na rede. Se esse mecanismo não existisse, o processador estaria ocioso por um tempo muito grande, sendo possível verificar se algum deles está reportando algum evento. As interrupções podem ser de Software (quando é causada por um programa), de Hardware (requisições de periféricos e relógios do sistema) e de Execução (instruções indevidas, como a divisão por zero, ou o acesso em bloco de memórias protegidos, overflow, etc)

No Windows utilize o comando msinfo32.exe para exibir a janela de informações do sistema e visualizar a lista de interrupções. Veja que o teclado que o principal meio de interação com o computador recebe o valor 1, ou seja, qualquer comando no teclado, o processador imediatamente atende essa solicitação.

SISTEMAS DE ARQUIVOS Os sistemas de arquivos são estruturas lógicas que permitem ao sistema operacional controlar as unidades de disco. Os discos podem ser particionados, ou seja, divididos, para que o Sistema Operacional seja capaz de diferenciar um conjunto de dados do outro. Cada Sistema Operacional trabalha com uma forma diferente de organizar os discos rígidos, dentro de processo classificado como formatação lógica, o qual permite que o Sistema Operacional otimize o acesso aos discos rígidos, determinando as trilhas, os setores e os clusters do disco. Os discos rígidos têm vários discos empilhados e cada disco possui duas faces. As trilhas são os círculos concêntricos em toda a superfície do disco, numeradas da parte externa para a parte interna, iniciando em zero. Um conjunto de trilhas formado pela disposição de todas as cabeças de leitura é classificado como cilindro, ou seja, todas as trilhas 1 de todos os discos formam o cilindro1, e assim por diante. Por fim, os clusters são as menores unidades de alocação dos discos. Vale ressaltar que existem vários sistemas de arquivos dependendo do Sistema Operacional.

Sistema de Arquivo e Operacional Sistema de Arquivo Sistema Operacional FAT 16 DOS, WIN95 FAT 32 WIN95, WIN98 FAT 16, FAT 32, NTFS WINDOWS XP NTFS WINDOWS NT4, XP, VISTA, WINDOWS 7, WINDOWS 8 ReFS Windows 8 EXT3, EXT4, ReiserFx, Swap Linux HFS, MFS Mac/OS HPFS OS/2 XFS SGI IRIX UFS FreeBSD, OpenBSD UFS SUN SOLARIS JFS IBM AIX

Arquivos Em todos os sistemas, eles recebem uma identificação, alguns atributos, um tipo e uma lista de controle de acesso. Essa identificação necessita de que seja informado o nome e o local dentro da estrutura. Todos os Sistemas Operacionais, por fim, têm suporte a múltiplos tipos de arquivos. Já que os fabricantes entendem que é necessário haver uma interoperabilidade entre os sistemas e os arquivos. Atributos dos Arquivos Além do nome, Sistemas Operacionais associam outras informações ao arquivo, como data e hora, autor, tamanho, visto que essas informações adicionais são chamadas de atributos, apesar de alguns autores considerarem o nome metadados mais adequado.

Atributo Proteção Senha Autor Proprietário Somente leitura Oculto Arquivamento Sistema ACSII/Binário Temporário Tamanho do registro Momento de criação Último acesso Última alteração Tamanho atual Tamanho máximo Atributo de Arquivos Definição Acesso ao arquivo: quem acessa e como acessa Solicita a senha para acesso Id do criador do arquivo. Id do proprietário atual. Flag 0 para leitura/escrita; 1 somente leitura. Flag 0 normal; 1 oculto Flag 0 arquivo com backup; 1 arquivo sem backup. Flag 0 arquivo normal; 1 arquivo sistema. Flag 0 para ASCII; 1 para binários. Flag 0 normal; 1 apagar arquivo quando o processo termina. Número de bytes no registro. Data e hora de criação. Data e hora do último acesso. Data e hora da última alteração. Número de bytes no arquivo. Número máximo de bytes do arquivo.

OPERAÇÕES COM ARQUIVOS Criação: cria um arquivo sem dados. Destruição: remove o arquivo para liberar espaço em disco. Abertura: aloca todas as referências do arquivo em memória. Fechamento: remove as referências da memória. Leitura: abre o arquivo somente para leitura. Escrita: permite escrever no arquivo. Concatenação: permite a escrita apenas no fim do arquivo. Busca: instrução que posiciona o cursor em uma posição específica do arquivo para permitir a escrita/leitura. Ver atributos: faz a chamada para que sejam visualizados os atributos do arquivo, como é o caso das permissões, por exemplo. Definir atributos: são flags que podem ser setadas como, por exemplo, os atributos do arquivo. Renomeação: instrução que permite mudar o nome do arquivo. Implementação: muitas vezes, um arquivo é gravado em vários clusters diferentes, a fim de gerenciar cada Sistema Operacional, já que eles usam métodos diferentes para fazê-lo.

Alocação contígua É o método mais simples, no qual os arquivos são armazenados em blocos sequenciais. A localização de arquivos é feita utilizando o endereço do primeiro bloco e o total de blocos da sua extensão. O desempenho da leitura é muito bom, apesar de o disco precisa ser desfragmentado constantemente, a fim de que continue com eficiência, já que a desfragmentação é um processo lento e demorado. Alocação por lista encadeada Nesse método, os arquivos são alocados em uma lista encadeada, na qual um bloco do arquivo mantém uma cópia do ponteiro para o próximo bloco. O tamanho do arquivo não precisa ser conhecido, já que não teve problemas de fragmentação. Devido a isso, o disco pode estar fragmentado, ou ser desfragmentado sem prejuízo para os arquivos. Vale ressaltar que o tempo de leitura é muito lento por ser sequencial.

Alocação indexada Utiliza uma lista indexada, na qual uma tabela armazena os endereços dos blocos utilizados. Nesse método, não existem problemas com relação ao tamanho da tabela, já que, ao ser incluído um novo bloco, essa tabela é atualizada. Por isso, ao percorrer qualquer bloco do arquivo para realizar a leitura ocorre mais rapidamente em RAM. Alocação combinada É o conceito de i-nodes, utilizado em Linux, que combina a lista encadeada com a tabela indexada. Sistemas de diretórios Para organizar os arquivos dos diversos usuários de um determinado sistema, de outros programas ou do Sistema Operacional, é necessário entender os sistemas de diretórios mais comuns:

Diretório de raiz: era o sistema utilizado nos computadores antigos que, apesar de ser simples e prático, não atendia às premissas de segurança e de sigilo dos sistemas mais modernos. Diretórios hierárquicos: é classificado como árvore de diretórios, surgindo da necessidade de organizar os arquivos de forma mais natural, a critério do usuário ou dentro de uma corporação, organizando os arquivos dar maneiras como os departamentos são organizados. Nesse tipo de ordenação, é necessário que os arquivos tenham um nome de caminho absoluto, ou seja, um caminho que o identifique exclusivamente em toda a árvore de diretórios.

PROCESSOS COMPUTACIONAIS Os processos computacionais são programas executados que utilizam alguns recursos do sistema, com a duração finita maior do que zero. Quando um software é inicializado automaticamente ou pela ação do usuário, ele cria processos, da mesma forma que um arquivo. Em outras palavras, qualquer ação computacional pode ser descrita como um processo. Finalização dos Processos Depois da criação e da execução dos processos, eles precisam ser finalizados, já que a premissa de um processo é de que ele seja finito. Em vista disso, essa finalização pode ser voluntária ou involuntária. Voluntária: quando o processo é finalizado por uma saída normal, ou seja, ao cumprir o trabalho ou quando ocorre algum erro que o finalize Involuntária: quando acontece algum erro fatal do sistema ou o cancelamento de algum processo por outro processo que está sendo realizado.

Subprocessos Existem muitos processos que podem ser subdivididos em procedimentos mais simples, a fim de que possam ser detalhados, ou seja, é possível dividilos até o nível de instrução no processador, o qual determina não só o nível de divisão, mas também o nível de entendimento do processo, dependendo dos eventos ou dos problemas que ele deseja entender. Em vista disso, um processo qualquer pode criar outros processos e, nesse caso o Processo Gerador é classificado como processo-pai e os demais são classificados como processos-filhos. P1 Árvore de processos: P2 P4 P3 P5 P6 P7 P8

Ocorrência dos Processos Paralela: dois processos ocorrem ao mesmo tempo, em determinado momento. Como concorrem pelo recursos do sistema, eles podem ser classificados em: Independentes: utilizam recursos diferentes do sistema, em que um processo não interfere no uso do recurso de outro processo; Concorrentes: utilizam o mesmo recurso do sistema e, por isso, é necessário uma intervenção do próprio sistema para determinar em que ordem os processos devem ser executados; Cooperantes: quando um ou mais processos utilizam o mesmo recurso para executarem a tarefa. Os processos paralelos aumentam a complexidade do sistema e permitem um aproveitamento melhor dos seus recursos. Sequenciais: quando os processos ocorrem individualmente, da mesma maneira que uma fila ou uma série. Dessa forma simples, muitos recursos do sistema ficam ociosos na maior parte do tempo.

CRIANDO PROCESSOS Os eventos que disparam a criação de processos podem ser associados à inicialização do sistema operacional, ou então através de System Calls (Chamadas de Sistema) Estados dos Processos Ready (Pronto) Running (Execução) Blocked (Bloqueado) O processo está pronto para utilizar os recursos de processamento, assim que o processador estiver disponível. Momento em que o processador está sendo utilizado. O processo fica suspenso aguardando alguma instrução de I/O (Entrada ou Saída) Para que os processos acima possam apresentar esses estados, há quatro transições que são possíveis de ocorrer dentro desse ciclo de vida, a saber: Dispatch (Despachar) TimeRunOut (Esgotamento) Block (Bloqueio) Awake (Reativar)

Threads SISTEMAS OPERACIONAIS Geralmente, são traduzidos como tarefas, pois ao tratar de Sistemas Operacionais ou de processamentos, representam um fluxo de tarefas. Esse processo evita que o sistema fique lento quando acontecem os processos citados anteriormente, sendo necessário utilizar os processadores multithreading. Os threads compartilham espaço em endereçamentos de memória, arquivos e outros recursos necessários da aplicação, porém cada thread é independente e tem o seu próprio contexto. Outra vantagem desses processos é que eles são mais rápidos para serem criados e destruídos.

No Windows é possível visualizar os threads no gerenciador de tarefas, adicionando à coluna Threads:

Deadlocks SISTEMAS OPERACIONAIS Também classificados como blocagem ou impasse, são falhas que ocorrem quando um processo qualquer tenta acessar algum recurso em uso e esse recurso está sendo utilizado por outro processo, ficando assim, bloqueado e com risco de gerar um encadeamento de falhas. Essas falhas também podem acontecer com sistemas que utilizem o multithreading quando um processo utiliza diversos threads e eles precisam de recursos alocados em outros threads. Vale ressaltar que os deadlocks são comuns em sistemas de banco de dados, de uso de arquivos e em dispositivos como as memórias.

Tratamento de deadlocks Os deadlocks estão associados ao desenvolvimento de um programa e, por isso, os desenvolvedores devem tomar decisões sobre como tratar essas falhas: Ignorar: nessa técnica, é utilizado o algoritmo do avestruz, ou seja, ignora-se que os deadlocks ocorram, já que essa ocorrência é muito baixa para qualquer outro tipo de tratamento, Detectar e recuperar o sistema: após identificar um deadlocks, o Sistema Operacional inicia o processo de recuperação, a partir de diversas técnicas que implementam esse procedimento. Evitar: impedir que as condições para sua existência ocorram, utilizando transações curtas. Para tanto, é necessário aplicar o algoritmo do banqueiro, que verifica se todos os recursos são suficientes para atender aos processos, caso eles sejam iniciados ou fiquem em espera.