Escolar Documentos
Profissional Documentos
Cultura Documentos
INICIALIZAÇÃO DO SO
Passo 1: quando ligamos o botão on/of do computador, a fonte de alimentação
fornece energia elétrica para os diferentes componentes do computador. Passo 2:
O processador procura a BIOS: Basic Input/Output System (Sistema Básico de
Entrada/Saída) Firmware que contém as instruções de inicialização do computador.
Passo 3: A BIOS executa o POST: Power-On Self Test (auto-teste de partida) que
faz o Teste de todos os dispositivos instalados, alertando em caso de erro, com
uma sequência de bips sonoros. Passo 4: Os resultados do POST são comparados
com os dados armazenados no chip CMOS: Complementary Metal Oxyde
Semiconductor, que Armazena informações de configuração do computador e
também detecta novos dispositivos conectados. Passo 5: A BIOS vai buscar os
arquivos do sistema no discos na seqüência especificada no setup do
computador. Passo 6: Execução do MBR: Master Boot Record (registro mestre de
iniciação), e inicialização do sistema operativo. Fazendo com que o programa de
boot carrega o kernel (armazenado no HD) para a memória principal, que assume,
a partir de então, o controle do computador. Passo 7: O sistema operativo carrega
as informações de configuração que são visualizadas pelo ecram, e executa os
programas de inicialização.
Setup: procedimento de configuração dos parâmetros da BIOS do computador.
Plug and Play: tecnologia que faz o Reconhecimento de novos dispositivos pelo
computador, instalação automática de drivers para esses dispositivos e verificação
de conflitos com outros dispositivos; é Suportado pela maioria dos dispositivos e
sistemas operativos atuais; Quando se conecta um sistema Plug’n Play, a BIOS
assumir o controle; Com base em identificadores (códigos permanentes gravados
na ROM), a BIOS reconhece os dispositivos instalados e o sistema operativo
assume o controle do mesmo.
Monoprogramação ou monotarefa
chama-se monotarefa um sistema operativo que permite a realização de apenas um
processo (job) de cada vez. O processador, memória e periféricos ficam dedicados
a uma única tarefa, e qualquer outra tarefa para ser executada, deve aguardar o
encerramento da tarefa atual. Enquanto uma aplicação aguarda um evento, o
processador permanecer ocioso, sem realizar qualquer tipo de processamento, a
memória acabar sendo sub-utilizada quando o programa não a utiliza totalmente e
os periféricos são dedicados a um único utilizador. Desta forma, os sistemas
monoprogramáveis acabam sendo por sua natureza muito pouco viáveis para os
tempos atuais.
Multiprogramação ou multitarefa
Multiprogramação ou Multitarefa é o nome dado à característica de alguns sistemas
operativos de rodar diversas aplicações de forma que parecem serem executadas
simultaneamente. Na realidade, na execução multitarefa, o tempo do processador é
dividido entre as aplicações em execução, e a execução das tarefas passa
rapidamente de uma para a outra, criando a ilusão de que as aplicações ocorrem
de forma conjunta. A idéia por detrás da multiprogramação é bastante simples.
Quando um programa liberta a CPU, seja para realizar alguma operação de E/S ou
por outro motivo, ela fica parada. Para acabar com a ociosidade deste tempo vários
programas são mantidos ao mesmo tempo na memória e o sistema operativo se
encarrega de escolher um deles para executar. Assim, sempre que um programa é
interrompido, um outro é escolhido para ser executado em seu lugar. Com isso, a
CPU estará durante grande parte do tempo ocupada processando instruções de
programas. Um dos principais benefícios da multiprogramação é o aumento da
utilização da CPU. Exº Sistemas em lotes, sistemas de tempo compartilhado e
sistemas de tempo real.
SISTEMAS MULTIPROCESSADOS
Sistemas multiprocessados são sistemas construídos sobre máquinas
computacionais que possuem mais de um processador para propósitos gerais.
Entre suas vantagens estão:
Maior produção
Balanceamento
O CONCEITO DE PROCESSO
Um processo pode ser entendido como um programa em execução, ou um módulo
executável único, que corre concorrentemente com outros módulos executáveis,
compostos por Múltiplas threads executaveis dentro de um mesmo processo..
A gestão de processos é uma das principais funções do sistema operativo que gere
os processos através de System Calls. Que são instruções com maior privilégio
usadas pelos aplicativos para solicitar ao kernel do SO, a execução de algum
serviço.
Através dos processos, um programa pode alocar recursos, compartilhar dados,
trocar informações, etc.
O sistema operativo é o responsável por gerir os programas em execução e
controlar o uso concorrente do processador.
A CPU executa cada programa em razão de milissegundos, no decorrer de um
segundo ela pode trabalhar sobre vários programas, dando aos utilizadors a ilusão
de paralelismo. Na prática, a CPU troca, a todo momento, de um processo para
outro. O mecanismo de trocas rápidas, onde a CPU faz esses chaveamentos é
chamada Multiprogramação.
ESTRUTURA DO PROCESSO
Cada processo é implementado pelo sistema operativo através de uma estrutura de
dados chamada bloco de controle do processo (Process Control Block — PCB). A
partir do PCB, o SO mantém todas as informações sobre o contexto de hardware,
contexto de software e espaço de endereçamento de cada processo.
Para que a troca de programas ocorra sem problemas, é necessário que todas as
informações do programa interrompido sejam armazenadas para que, quando o
programa retorne a execução possa continuar exatamente de onde parou. Essas
informações são denominadas: Contexto. A troca de um processo por outro, é
denominada mudança de contexto. É através BPC (Control Process Blocks, ou
controle de Blocos de Processos), que o sistema operativo reúne todas essas
informações a cerca da execução dos processo
ESTADOS DE UM PROCESSO
O processo pode estar no estado:
● Novo
O processo está sendo criado
● Executando
Instruções estão sendo executadas
● Esperando
O processo está esperando que ocorra algum evento
● Pronto
O processo está esperando para ser atribuído a um processo
● Terminado
O processo terminou a execução
TIPOS DE PROCESSOS
CPU-bound (Ligado à CPU)
O processo passa a maior parte do tempo no estado de execução.
Realiza poucas operações de I/O
Encontrado em aplicações que efetuam muitos cálculos.
I/O-bound (Ligado à E/S)
O processo passa a maior parte do tempo no estado de espera
Encontrado em aplicações comerciais com bastante leitura, processamento e
gravação.
Encontrado também em aplicações interativas.
Término de Processos
Os processos podem terminar de forma voluntária (saída norma)l e involuntária
(saída por erro). Aqui estão alguns exemplos de motivos para os processos
cessarem sua execução e sua forma:
Saída normal: A tarefa anteriormente solicitada termina sua execução e o
processo encerra sua execução dentro do previsto (com sucesso) avisando ao
sistema que o processo referente aquele programa terminou (saída voluntária);
Saída por erro: O arquivo não é encontrado e o processo em execução
disparando uma requisição de sistema solicitando o encerramento do mesmo.
(saída voluntária);
Erro fatal: acontece quando um processo encontra um erro inesperado,
geralmente por um erro de programa, e o próprio sistema operativo trata de
encerra-lo imediatamente (saída involuntária);
Cancelamento por um outro processo: Quando um processo solicita que o
outro processo seja encerrado, por exemplo o processo pai, encerra um
processo filho que gerou para execução temporária ou para auxiliar alguma
tarefa. Kill, TerminateProcess (saída involuntária).
SEMÁFOROS
Os semáforos apresentam um mecanismo de sincronização sem espera activa que
pode ser adaptado aos diversos problemas de sincronização entre processos.
Os semáforos são constituídos por uma variável de controlo inteira e por uma lista
de processos. A primitiva Esperar bloqueia um processo quando a variável do
semáforo tem o valor zero. O contexto do processo é colocado na fila de processos
do semáforo e o seu estado passa a bloqueado. A primitiva Assinalar incrementa a
variável de controlo, se não existirem processos bloqueados, ou torna executável
um processo.
Quando um terceiro usuário for fazer esta mesma matrícula, o número de vagas
será expresso como 4, sendo que na verdade deveria ser 3. Isto causará
instabilidade e poderá comprometer todo o sistema. A solução para este tipo de
caso é a certeza de exclusão mútua, isto é, apenas um processo pode acessar a
região crítica por vez; Ela pode ser uma estratégia válida em certas circunstâncias,
mas no geral é considerada um anti-padrao e deve ser evitada, já que o tempo
de CPU gasto poderia ser usado noutra tarefa.
SINCRONIZAÇÃO DIRECTA
Usa um par de primitivas( dormir, Acordar) para bloquear o processo e coloca-lo
numa fila de processos suspensos ou acorda-lo, e transferi-lo para a fila dos
processos executáveis.
Uma restrição habitual é permitir apenas o uso de sincronização directa entre
processos relacionados hierarquicamente para evitar que um processo possa
arbitrariamente suspender outro sobre o qual não detém qualquer privilégio. Esta
protecção restringe a sincronização directa a processos do mesmo utilizar.
SINCRONIZAÇÃO INDIRECTA
A sincronização indirecta é feita com base em semáforos onde um único processo
executa a operação e os restantes processos esperam serem notificados de um
acontecimento através da primitiva acordar.
Exclusão Mútua
A exclusão mútua é o mecanismo mais simples para evitar compartilhamentos
problemáticos. A idéia é impedir que dois ou mais processos acessem um mesmo
recurso simultaneamente.
Neste caso, quando um processo estiver usando um recurso, todos os demais
processos devem ser colocados no estado em espera. Este acesso exclusivo do
recurso pelo processo é chamado exclusão mútua.
A exclusão mútua afeta apenas os processos concorrente quando eles
fazendo acesso a um recurso compartilhado. O trecho de código que faz
acesso ao recurso compartilhado é chamado região crítica;
ESCALONAMENTO OU CHAVEAMENTO
O Escalonador é um programa/algoritmo responsável por decidir o momento em
que cada processo obterá a CPU, e pela ordenação das “filas” de processos.
TIPOS DE ESCALONADORES
● Escalonador a longo prazo (ou escalonador de processo (job))– seleciona quais
processos devem ser trazidos para a fila de pronto.
● Escalonador a curto prazo (ou escalonador de CPU) – seleciona qual processo
deve ser
executado em seguida pela CPU.
GESTÃO DA MEMÓRIA
O sistema operativo gere à memória do sistema para permitir que os processos
tenham acesso seguro à memória quando a requisitam utilizando a memória
secundária como uma extensão da memória principal. Um programa em execução
pode ser totalmente carregado para a memória principal ou não, depende do
sistema operativo, e de quanta memória livre tiver. É comum só as páginas com
código necessário serem carregadas. Mas se houver memória livre pode ser
carregado tudo. A Memória Virtual resulta da Combinação da memória principal e
secundária, dando a Impressão da memória ser muito maior do que é; na verdade
uma parte da memoria secundaria é usada como principal para armazenar uma
parte dos programas em execução.
Para escolher o ponto em que deve ser carregado um processo recém criado ou
que veio do disco por uma troca, vamos utilizar alguns algoritmos assumindo que o
gerenciador de memória sabe quanto espaço alocar no processo:
First Fit (primeiro encaixe): percorrer a fila até encontrar o primeiro espaço em
que caiba o processo. É um algoritmo rápido.
Next Fit (próximo encaixe): o mesmo que o algoritmo anterior, só que ao invés
de procurar sempre a partir do início da lista, procura a partir do último ponto
em que encontrou. Desempenho próximo ao anterior.
Best Fit (melhor encaixe): consiste em verificar toda a lista e procurar o
buraco que tiver espaço mais próximo das necessidades do processo. É mais
lento, e desempenho pior que o First Fit
Worst Fit (pior ajuste): pega sempre o maior buraco disponível. Desempenho
ruim.
Fragmentação
Desperdício de páginas de memória alocadas. Pode ser de dois tipos:
Interna: Ocorre quando o processo não ocupa inteiramente os blocos de
memória (páginas) reservados para ele. Geralmente acontece pois o tamanho
do processo não é um múltiplo do tamanho da página de memória, o que
acarreta sobra de espaço na última página alocada.
Externa: Ocorre à medida que os programas vão terminando e deixando
lacunas cada vez menores de espaços entre as páginas. Dependendo do
tamanho que precisa ser escrito em memória, estes espaços podem ser
pequenos demais para serem úteis, e assim ficam inutilizados.
Estratégias para "atacar" o problema com o algoritmos Firt-fit, Best-fit, Worst-fit,
Next-fit
Page fault ocorre Quando o processador tentar aceder ao endereço de uma página
marcada como fora da memoria principal, o sistema operativo terá que buscá-la no
"disco", colocar na memoria principal e só aí deixar o processador aceder a ele. Isto
é.
PAGINAÇÃO
A paginação permite que o programa possa ser espalhado por áreas não contíguas
de memória física. O espaço de endereço virtual é dividido em unidades chamadas
páginas, e as unidades correspondentes na memória física são chamadas molduras
de página (ou frames). As páginas e as molduras (frames) têm de ter exatamente o
mesmo tamanho.
SEGMENTAÇÃO:
Técnica de gerência de memória onde programas são divididos em segmentos de
tamanhos variados cada um com seu próprio espaço de endereçamento. A principal
diferença entre a paginação e a segmentação é a alocação da memória de maneira
não fixa, a alocação depende da lógica do programa.
OS ARQUIVOS
Conceitualmente um arquivo é um conjunto de informações logicamente
relacionadas. Este conjunto de informações podem ser um conjunto de dados ou
um conjunto de instruções. Um arquivo executável possui instruções em linguagem
de máquina que são executadas pelo sistema operativo. Um arquivo também pode
ser um arquivo de dados, com dados estruturados, contendo um determinado
número de campos, com tamanhos definidos, posição inicial e posição final. Um
arquivo pode conter conteúdo multimídia, imagem, áudio, som, vídeo, etc. Do ponto
de vista do utilizador, temos diferentes tipos de arquivos porém para o sistema
operativo um arquivo é tão somente um conjunto de registros definido pelo sistema
de arquivos.
Armazenamento de Arquivos
Os arquivos são armazenados pelo sistema operativo em diferentes dispositivos
físicos como fitas magnéticas, discos magnéticos, discos ópticos, etc. O tipo de
dispositivo onde o arquivo é armazenado deve ser isolado do sistema operativo, de
forma que exista uma independência entre os arquivos a serem manipulados e o
meio de armazenamento, ou seja, O sistema operativo, deve ser capaz de
manipular arquivos independente do dispositivo físico onde estão armazenados.
Organização de Arquivos
A organização de arquivos consiste em como os dados estão internamente
armazenados. A estrutura dos dados pode variar em função do tipo de informação
do arquivo. Arquivos texto e arquivos executáveis são muito diferentes e possuem
propósitos diferentes, consequentemente estruturas diferentes. Quando um arquivo
é criado, o programa que o cria, determina a estrutura que será utilizada para
armazenar os dados no arquivo. Os arquivos possuem uma série de propriedades
que são utilizadas para definir a maneira como os dados serão lidos, atualizados,
apagados, como será apresentado para o utilizador, a data em que foi criado, etc.
Sistema De Arquivos
Um sistema de arquivos é o conjunto de regras que definem a maneira como os
dados do utilizador, programas, e informações de configuração, serão gravados e
geridos nos dispositivos de armazenamento acedidos pelo computador. Essas
informações serão armazenadas fisicamente nos dispositivos, e geridas pelo
sistema operativo através de estruturas de dados, que serão a representação lógica
das informações.
O nome FAT deriva da sigla, em inglês, File Allocation Table. Este sistema de
arquivos possui uma tabela que serve como um mapa de utilização do disco. O
numeral 32 deriva do fato de que cada posição no disco utiliza uma área variável de
32 bits. em discos formatados com o sistema de arquivos FAT32, não é possível ter
partições maiores do que 32 GB. Para piorar a situação, o sistema é incapaz de
reconhecer arquivos maiores que 4 GB. Além disso, é totalmente inseguro.
Qualquer pessoa com acesso ao disco pode ler todos os arquivos. O sistema
FAT32 não conseguiu atender aos requisitos dos sistemas informáticos modernos,
mas continua a ser perfeito para dispositivos de armazenamento como drive flash,
pen drive etc. uma vez que ele pode oferecer suporte para um tamanho de arquivo
de até 4 GB.
Características do FAT32
É compatível com todos os sistemas operacionais;
Ocupa menos espaço no disco USB;
Conta com leitura e escrita de arquivos menores que 4 GB;
Capacidade de criar partições do disco de ate 32 GB;
Trabalha de forma mais rápida e com menos uso de memória.
ExFAT OU FAT64
Sabendo que o formato padrão para pen-drives é o FAT32, e que este padrao
apenas suporta tamanho máximo de arquivos de 2 Gb. Se se pretender gravar um
arquivo grande no pen-drive seria necessário dividi-lo em arquivos menores ou
então usar o sistema de arquivos NTFS, porém, não é recomendado, pois o padrao
NTFS reduz a vida útil do pen-drive em até 75%. Percebendo estes problemas, a
Microsoft criou uma extensão ao atual FAT32, que é o FAT64, também chamado
exFAT. O ExFat é o que chamamos de FAT64 bits. Ela é muito mais veloz que a
FAT32. É ideal para pen-drives usadas com grandes arquivos, ou mesmo HD's em
que a velocidade de acesso é essencial e não se precisa de recursos de segurança
Características do exFAT
Conta com leitura e escrita de arquivos maiores que 4 GB;
Capacidade de criar partições do disco com mais de 32 GB;
Possui melhor gerenciamento de espaço;
Conta com menos fragmentação.
O NTFS
O New Technology File System, conhecido como NTFS, trata-se de um sistema de
arquivos que surgiu juntamente com o lançamento do Windows NT. O NTFS possui
várias características favoráveis que, em caso de falhas, por o computador ter um
desligamento repentino, ele tem a capacidade de reverter os dados para a condição
anterior ao problema, uma vez que ele permite ao SO para manter os logs de todas
as alterações feitas sobre os arquivos, armazenamento podendo os mesmos serem
revertidos ao estado inicial, o que resulta na restauração dos arquivos.
Ele também suportar uma replicação de dados, nos sistemas RAID, e a atribuição
de permissões de acesso possibilitando ao utilizador definir quem pode e, como
aceder pastas ou arquivos. o NTFS faz uso do recurso EFS (Encriptation
FileSystem), que funciona como uma camada extra de segurança. Deste modo, o
utilizador pode encriptar seus arquivos no disco, exigindo senha para
desencriptação. O EFS não é suportado pelo FAT32.
Características do NTFS
Cria partições maiores que 32GB;
Tem capacidade de compactar arquivos e economizar espaço em disco;
Conta com melhor gestão de espaço, assim, gerando menos fragmentação;
Possui menos espaço desperdiçado;
Conta com a criptografia de arquivos usando o EFS (Encrypting File System,).
Diretórios
O sistema de arquivos organiza os arquivos em estruturas conhecidas como
diretórios. O diretório é uma estrutura de dados em árvore que contem elementos
associados aos arquivos onde cada elemento armazena informações como a
localização física, nome, organização do arquivo e demais atributos. Quando um
arquivo é aberto o sistema de arquivos busca sua entrada na estrutura de diretórios
e armazena a localização e nome do arquivo numa tabela mantida na memória
principal. Esta tabela mantem todos os arquivos abertos e é mantida em memória
por questões de desempenho das operações de arquivos. É importante que ao
término de uso do arquivo o mesmo seja fechado para que os dados da tabela
sejam libertados.
Nomeação dos Arquivos e Diretórios
Os sistemas de arquivos atuais permitem a criação de arquivos e diretórios com
nomes de até 255 caracteres. Tendo em conta que não se deve utilizar nenhum
caracter especial, pois alguns são utilizados para auxiliar na organização, exibição
e administração dos arquivos. Os caracteres: “/”, “?”, “$”, “~”, etc, dependendo do
sistema operativo podem ter significados específicos. Por exemplo, nos sistemas
Unix, se um arquivo começa com o caractere “.”, indica que o arquivo ficará oculto,
e se começa com “~” significa que é uma cópia de segurança. Nas versões
Windows, dependendo do SO, o nome do arquivo pode aparecer com algumas
variações.
Existem diferentes formais de gerir a alocação do espaço livre em disco. Uma forma
mais simples é usar uma tabela de bits ou mapa de bits. Cada entrada na tabela é
associada a um bloco do disco representado por um bit, podendo assumir valor
igual a 0 ( bloco livre ) ou 1 ( bloco alocado a algum arquivo ).
Uma outra forma é usar uma estrutura de dados de lista encadeada de todos os
blocos livres do disco. Nesta forma de alocação de espaço livre, cada bloco possui
o endereço do próximo bloco no disco. A partir do primeiro bloco livre encontrado é
possível encontrar outros blocos livres para alocação ao arquivo através do acesso
de forma encadeada.
Uma outra forma é considerar que blocos contínuos são geralmente alocados ou
libertados simultaneamente. Com isso podemos enxergar o disco como um
conjunto de segmentos de blocos livres. Desta forma, mantem-se uma tabela com o
endereço do primeiro bloco de cada segmento e o número de blocos livres que se
seguem. Esta técnica é conhecida com técnica de blocos livres.
A Alocação Contígua
A alocação contígua consistem em armazenar um arquivo em blocos
sequencialmente dispostos no disco. Neste tipo de alocação, o sistema de arquivos
localiza um arquivo através do primeiro bloco e da sua extensão em blocos
( tamanho do arquivo ). O principal problema para esta técnica de alocação de
espaço é que caso um arquivo seja criado é necessário que haja blocos livres
contíguos suficiente no disco para permitir a alocação. No momento em que o
sistema de arquivo aloca um segmento de blocos contíguos a um arquivo pode ser
que haja mais de um segmento disponível com o tamanho necessário para o
arquivo. Neste caso existem algoritmos que são usados para escolher qual
segmento de blocos será utilizado:
A Alocação Encadeada
Na alocação encadeada um arquivo pode ser organizado com um conjunto de
blocos ligados logicamente no disco, independente de sua localização física ou
seja, não é necessário que os blocos sejam fisicamente contíguos no disco. Neste
caso cada bloco possui um ponteiro para o bloco seguinte do arquivo e assim
sucessivamente. Nesta técnica a localização física do disco não apresenta
problema pois os blocos são ligados uns aos outros através do ponteiro e não
necessitam estar fisicamente contíguos no disco.
Na alocação indexada é possível o acesso direto ao bloco. Para isso os endereços
de todos os blocos são mantidos numa estrutura chamada bloco de índice.
Proteção de acesso
Todo sistema de arquivo deve permitir o compartilhamento de arquivos por diversos
utilizadores e processos garantindo que somente utilizadores autorizados tenham
acesso aos arquivos compartilhados. A proteção de acesso é implementada através
de controle de concessão de operações de leitura, gravação, execução e em alguns
casos remoção aos utilizadores do sistema operativo. A proteção de acesso aos
diretórios é implementada para as operações de visualizar os arquivos de
um diretório, criar/remover arquivos em um diretório e remover um diretório.
Existem Basicamente 3 mecanismos de proteção de acesso que estão disponíveis
na maioria dos sistemas operativos:
OS NÍVEIS DE RAID