Buscar

Aux SO Atividade 1

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

Os Sistemas Operacionais (SO) são softwares complexos que possibilitam a interatividade do usuário final com o conjunto de dispositivos eletrônicos que formam um computador. Na prática, isso significa que é o sistema operacional que controla, organiza e coordena as ações executadas em dispositivos computacionais.
 Com o passar do tempo a habilidade dos sistemas operacionais em conduzir seu usuário a concluir suas tarefas com eficácia, apresentando-lhes uma interface simples e visualmente amigavel evoluiu, fornecendo assim os sistemas peracionais modernos que utilizamos hoje.
 O sistema operacional tambem é responsavel por tornar a utilização do computador mais fácil para o usuário escondendo detalhes técnicos, deixando a interface mais confortável para a utilização dos recursos, reduzindo o tempo necessário para a construção de programas e para utilizar o hardware de forma eficiente, obtendo mais trabalho de um mesmo hardware distribuindo melhor os recursos.
 Buscando mais eficiencia na utilização do hardware, o sistema operacional proporciona uma maior retorno do investimento feito, significando mais trabalho obtido do mesmo hardware. Uma utilização mais eficiente do computador é obtida através da distribuição de seus recursos entre os programas. Nesse contexto, são considerados recursos quaisquer componentes do hardware disputados pelos programas. Por exemplo, espaço na memória principal, tempo de processador, impressora, espaço em disco, acesso a disco, etc.
 
É de responsabilidade do sistema operacional realizar diversas funçoes, sendo elas:
Gerenciamento de processos: O gerenciamento de processos é um dos conceitos fundamentais dos sistemas operacionais modernos. No gerenciamento dos processos serão definidas as propriedades dos processos em execução, e a maneira como cada um receberá o tempo de execução no processador. A principal função do gerenciador de processos é exatamente a execução do processo no processador de maneira adequada (considerando a prioridade do processo e a quantidade de processos gerenciados).
Em relação à execução dos processos, os gerenciadores podem ser separados em três categorias:
•Gerenciadores por Admissão: neste caso o gerenciador irá escolher quais processos serão selecionados para serem executados no processador. Quando um programa solicita ao sistema operacional a execução de alguma operação, é o gerenciador de processos que irá decidir o momento em que esta solicitação será atendida. Esta escolha é feita verificando-se alguns fatores, sendo que o principal fator é a Prioridade do Processo.
Esse tipo de gerenciador geralmente é utilizado em Sistemas de Tempo Real, em que o controle da execução das operações deve ser rigorosamente definido e obedecido. Não existe nenhum sistema operacional para computadores pessoais que utilize esse tipo de gerenciador de processos;
•Gerenciadores por Tempo Médio: este está presente em todos os sistemas que trabalham com Memória Virtual que temporariamente irá retirar processos da memória principal e guardá-los na memória secundária, e vice- versa. A escolha de qual processo irá sair da memória principal para a secundária é feita de acordo com o estado do processo.
Podemos exemplicar da seguite forma: enquanto o processo está nos estados de Espera e Execução, ficará na memória principal e quando passar para o estado de Bloqueio será retirado da memória principal e será armazenado na memória secundária. Quando o processo passar do estado de Bloqueio para Espera, será enviado da memória secundária para a principal;
•Gerenciadores Despachantes: os despachantes designam os processos para serem executados pelo processador baseados em alguma alteração ocorrida no sistema, que pode ser causada por uma interrupção do relógio do processador, por um dispositivo, por uma instrução de Chamada do Sistema, ou por algum outro sinal identificável. Dessa maneira, não será nem a prioridade do processo, nem a alteração do seu estado que influenciarão na escolha feita pelo gerenciador. As execuções dos processos serão feitas de acordo com o nível de “atividade” do sistema.
Quando houver uma carga de trabalho muito grande, os processos receberão em intervalos regulares o devido tempo de execução no processador. Quando a carga de trabalho for menor, cada processo terá mais tempo para executar no processador. (O tempo de interrupção causado pelo relógio pode ser definido pelo programador do sistema operacional).
Conforme um processo é executado, ele muda de estado. O estado de um processo é definido em parte pela atividade atual desse processo. Um processo pode estar em um dos seguintes estados:
Novo— o processo está sendo criado.
Execução — instruções estão sendo executadas.
Espera— o processo está aguardando a ocorrência de algum evento.
Pronto — o processo está aguardando para ser atribuído a um processador.
Terminado — o processo terminou a execução.
É necessario entender a interação entre os estados que um processo pode ter e que entre o início (novo) e o término (terminado) um processo percorrerá várias vezes os estados possíveis.
A transição do estado de novo para pronto ocorre logo após a criação do processo, em seguida será escalonado (selecionado para a execução) para a primeira execução, e neste período fará a solicitação aos recursos que venha a necessitar. Perceba que o estado pronto se refere à situação na qual o processo tem reunida todas as condições para ser executado. A partir da solicitação de recursos, que ocorre na primeira execução ou ao longo do tempo em que o processo estiver ativo, ele poder ter a transição para o estado de esperando, e ficará até que os recursos solicitados sejam fornecidos ao processo. Quando um processo está no estado pronto, ele aguardará apenas na fila para ser escalonado, e durante sua execução pode passar aos estados de esperando (no caso de solicitar novos recursos) ou pronto (no caso de terminar o seu quantum de execução e precisar aguardar por um novo período) e de terminado. O estado de terminado ocorre quando o processo chega ao fim, não restando mais nenhum processamento a ser feito. A mudança de estado de um processo ocorrerá sempre em função da prioridade, respeitando-se o tipo de política de escolha para a execução que estiver em uso pelo gerenciador de processos, que este processo possui (menor prioridade recebe menos tempo de execução), bem como da disponibilidade dos recursos que o processo vier a solicitar. Compreenda que a prioridade é um conceito adaptável, quando se está falando de gerenciador de processos, dependendo do algoritmo em uso, a prioridade será: do menor trabalho, do mais antigo, do que estiver esperando a mais tempo.
Gerenciamento de dispositivos:Para gerenciar dispositivos conectados ao computador, tais como: teclado, mouse, monitor, impressora, entre outros, o sistema operacional deve primeiramente ter a capacidade de acessar o dispositivo e enviar comandos e informações ao mesmo. Para realizar essa tarefa, os sistemas operacionais recebem um conjunto de instruções específicos para o tratamento dos dispositivos, esse conjunto de instruções é chamado de Driver de Dispositivo. Cada dispositivo possui um driver específico, e cada driver é criado pela empresa que criou o dispositivo. A empresa Epson desenvolve os drivers para as impressoras Epson Stylus CX que ela fabrica e a empresa Hewlett-Packard desenvolve os drivers para as impressoras HP DeskJet, sendo que os drivers para as Epson Stylus não funcionarão para gerenciar as impressoras HP DeskJet.
Além da dependência direta entre o driver e o dispositivo, existe a dependência direta entre o driver e o sistema operacional, pois um driver feito para ser utilizado pelo MS-Windows não pode ser utilizado pelo MacOS X (e vice-versa).
Os drivers também são criados para permitir ao sistema operacional acessar: conectores USB e Firewire, redes Bluetooth, unidades de CD e DVD. Os drivers são uma peça fundamental para o bom funcionamento do computador, pois os dispositivos
conectados nele só serão utilizados se o driver para o dispositivo estiver disponível para o sistema operacional. Se não houver o driver para um dispositivo conectado ao computador, esse dispositivo não poderá ser utilizado, e se for instalado um driver incorreto para um dispositivo, ele não funcionará de maneira adequada.
Gerenciamento de memória: o gerenciamento da memória é a ferramenta utilizada para permitir aos programas em execução no computador utilizarem a memória do computador para armazenar as instruções e dados que serão manipulados. Os principais objetivos a serem alcançados no gerenciamento da memória são:
•Oferecer uma área de armazenamento para os processos serem executados;
•Proteger a execução dos processos contra eventuais falhas causadas por erro em um determinado processo;
•Criar um ambiente de execução com desempenho satisfatório aos usuários;
Além dessas características, adicionalmente deseja-se de um bom gerenciador:
•Compartilhamento da memória entre os processos (em sistemas avançados);
•Permitir aos programadores desenvolverem programas que tenham um acesso transparente à memória do computador.
Nos sistemas operacionais modernos, o gerenciamento da memória realizará essas tarefas
através da Proteção da Memória, que é a estratégia utilizada pelos sistemas operacionais para controlar a memória em utilização no computador. A principal função da proteção da memória é a separação dos processos e suas informações, e impedir que um processo acesse uma área de memória que não foi reservada para ele. Para realizar a proteção da memória, uma das seguintes medidas pode ser escolhida: Segmentação da Memória ou a Paginação da Memória.
Na Paginação da Memória, a memória é dividida em páginas, com tamanho fixo. Com a utilização de um outro mecanismo chamado Memória Virtual, cada página pode ser armazenada em qualquer lugar da memória do computador. A Segmentação da Memória é a divisão da memória do computador em segmentos de dados. Quando um programa vai acessar uma área de memória, ele deve informar também o número do segmento de memória.
Gerenciamento de memória virtual: O objetivo principal da memória virtual é disponibilizar aos usuários uma capacidade de memória independente da quantidade real de memória física (RAM) instalada em um computador. Para cumprir esse objetivo, o sistema operacional, por meio da implementação do suporte à memória virtual, cria a ilusão de que cada processo possui um espaço de endereçamento contíguo em memória e, em princípio, sem restrição de tamanho. Dessa forma, a memória virtual elimina duas limitações impostas pela memória física (real): um processo ter seu tamanho máximo determinado pela capacidade de memória física instalada; e o somatório do espaço de memória ocupado por n processos não exceder essa mesma capacidade. Essa segunda limitação restringe o grau de multiprogramação, ou seja, o número de processos ativos em um sistema
 O emprego de memória virtual apresenta como vantagens a possibilidade de executar aplicações maiores que o tamanho real da RAM e o aumento do número de processos ativos em memória (grau de multiprogramação). Sua maior desvantagem é o desempenho, pois parte dos acessos na área de endereçamento de um processo depende de acessos à área de swap (disco), o que é mais lento que acessar diretamente a memória RAM.
Gerenciamento de arquivos:Um sistema de arquivos é o conjunto de regras que definem a maneira como os dados do usuário, programas, informações de configuração, entre outras, serão gravados e gerenciados nos dispositivos de armazenamento acessados pelo computador. Essas informações serão armazenadas fisicamente nos dispositivos, e gerenciadas pelo sistema operacional através de estruturas de dados, que serão a representação lógica das informações.
Um sistema operacional geralmente é caracterizado pelo sistema de arquivos que utiliza, mas um mesmo sistema operacional pode utilizar mais de um sistema de arquivos para gerenciar os do computador.
Classificação dos Sistemas de Arquivos:
Os sistemas de arquivos podem ser classificados em dois tipos básicos:
•Sistemas de Disco: uma unidade de armazenamento não-volátil (disco-rígido, CD-R, flashdrive) é utilizada para guardar os arquivos e seus dados. A Tabela de Arquivos geralmente fica armazenada na própria unidade de armazenamento onde se encontram os arquivos referenciados por ela. Exemplos de sistemas de arquivo em disco são: FAT32, NTFS, HFS, ext2, ext3, isso 9660, etc.
•Sistemas de Arquivo em Rede: Um sistema de arquivo em rede é um sistema em que o gerenciamento e armazenagem dos arquivos de um computador é feito em um outro computador conectado à rede, que permite o acesso aos dados de maneira transparente, como se estivessem no próprio computador do usuário. O sistema mais utilizado é o NFS.
Gerenciamento de cache: o cache é um princípio importante dos sistemas de computador. As informações são normalmente mantidas em algum sistema de armazenamento (como a memória principal). À medida que é usado, é copiado para um sistema de armazenamento mais rápido — o cache — em uma base temporária. Quando precisamos de uma informação específica, primeiro, verificamos se está no cache. Se sim, usamos as informações diretamente do cache. Assim, podemos acessar as informações de uma maneira mais rápida. O deslocamento das informações entre os níveis de uma hierarquia de armazenamento pode ser explícito ou implícito, dependendo do design do hardware, do controle e do software do sistema operacional. Por exemplo, a transferência de dados do cache para a CPU e os registradores, geralmente, é uma função de hardware, sem intervenção do sistema operacional, da aplicação ou usuário. Em contraste, a transferência de dados do disco para a memoria é, geralmente, controlada pelo sistema operacional.
Gerenciamento de dispositivos: A gerencia de dispositivos de entrada/saída é uma das principais e mais complexas funções do sistema operacional. A gerencia de dispositivos de entrada/saída é estruturada em camadas onde as camadas de mais baixo nível escondem características dos dispositivos físicos das camadas superiores isolando as aplicações do usuário de ter que conhecer a arquitetura do hardware usado para operações de entrada/saída.
Uma camada para E/S
Como existem muitos dispositivos de entrada/saída com muitos modelos e características diferentes o sistema operacional implementa uma camada de subsistema de E/S. com a função de isolar a complexidade dos dispositivos físicos. Dessa forma, é possível ao sistema operacional ser flexível permitindo a comunicação das aplicações com qualquer tipo de periférico.
Device Driver 
Todos os aspectos técnicos como velocidade de operação, unidade de transferência, representação de dados, tipos de operações são tratados pela camada device driver faz a comunicação dos dispositivos com a camada subsistema de E/S.
OS grupos de camadas
As camadas são divididas em dois grupos. O primeiro grupo visualiza todos os dispositivos de modo único e o segundo grupo é específico para cada dispositivo. A maior parte das camadas trabalha de forma independente dos dispositivos físicos.,,,
 camada Subsistema de E/S
Esta camada deve tornar as operações de E/S o mais simples possível para o usuário e para as aplicações. O subsistema isola a complexidade dos dispositivos e das operações de E/S para cada tipo de dispositivo cada camada de sistema de arquivos, do sistema gerenciador de banco de dados e das aplicações.
As rotinas de entrada/saída
O subsistema de E/S torna simples as operações de entrada/saída para o usuário e para as aplicações através do uso de um conjunto de rotinas especiais denominado rotinas de entrada/saída. Estas rotinas cuidam dos detalhes das operações de leitura e escrita como em qual trilha gravar o arquivo, a partir de qual setor, qual o tipo de formatação do disco, sem que os usuários ou as aplicações tenham que se preocupar com estes
detalhes.
Com isso podemos construir um programa java que grave um arquivo de dados não importa se no disco rígido local, em um disco da rede, em um pen drive, em uma fita magnética, etc.
O Device Driver
O device driver implementa a comunicação entre o subsistema de E/S com os dispositivos através de controladores de E/S. Enquanto o subsistema de E/S trata de funções ligadas a todos os dispositivos, os drivers tratam apenas dos seus aspectos particulares.
Assim os device drivers recebem comandos gerais de leitura e escrita e os traduzem em comandos específicos de leitura e escrita que podem ser executados por um controlador de um dispositivo específico.
Por exemplo, em uma operação de leitura de um dado em disco o device driver recebe a solicitação de leitura de um determinado bloco mas informa ao controlador exatamente qual o disco, cilindro, trilha e setor em que o bloco se localiza. O controlador então executa a operação de leitura.
O Controlador de entrada e saída
Os controladores são dispositivos de hardware que manipulam diretamente os dispositivos de entrada e saída. O device driver comunica-se com os dispositivos indiretamente através do controlador. Existe assim um controlador para cada tipo de dispositivo físico de entrada /saída ( disco, impressora, fita, etc. ).
Em geral o controlador pode ser um placa independente acoplada a CPU por um slot ou pode ser implementado diretamente na placa do processador.
Dispositivos de entrada e saída
Os dispositivos de entrada e saída permitem a comunicação entre o computador e o mundo externo. Podem ser classificados como entrada de dados, saída de dados ou ainda entrada e saída de dados.
A transferência dos dados é sempre feita em blocos de informação através dos controladores de dispositivos.
Os dispositivos de entrada e saída podem ser classificados em estruturados e não estruturados. São ditos estruturados quando operam com blocos de tamanho fixo. Os discos são exemplos de dispositivos de entrada saída estruturados.
Os dispositivos de entrada e saída estruturados podem ser classificados como sendo de acesso direto ou acesso sequencial conforme a forma de acesso aos dados. Os dispositivos de acesso sequencial acessam os dados bloco por bloco, ou seja, para ler o bloco 3 o dispositivo precisa antes ler o bloco 3. As unidades de fita são exemplos de dispositivos de acesso sequencial. Os dispositivos de acesso direto acessam diretamente o bloco através do endereço. As unidades de disco são exemplos clássicos de dispositivos de acesso direto.
Gerenciamento de recursos
 O gerenciamento de recursos incluí a multiplexação (compartilhamento) de recursos de duas maneiras: no tempo e no espaço. Quando um recurso é multiplexado no tempo, diferentes programas ou usuários o utilizam por turnos: primeiro um deles utiliza o recurso, depois o outro e assim por diante. Por exemplo, com apenas uma CPU e vários programas que queiram ser executados nela, o sistema operacional primeiramente aloca a CPU para um programa e, depois, após o programa ter executado o suficiente, outro programa utiliza a CPU, depois outro e, finalmente, o primeiro programa novamente. Determinar como o recurso é multiplexado no tempo - quem vem em seguida e por quanto tempo - é tarefa do sistema operacional.Outro exemplo de multiplexação no tempo é o compartilhamento da impressora. Quando várias tarefas de impressão são enfileiradas em uma única impressora, uma decisão precisa ser tomada com relação a qual das tarefas deve ser impressa a seguir.
 O outro tipo de multiplexação é a no espaço. Em vez dos clientes atuarem por turnos, cada um deles recebe parte do recurso. Por exemplo, normalmente, a memória principal é dividida entre vários programas que estejam em execução para que cada um possa estar residente ao mesmo tempo (por exemplo, para utilizar a CPU por turnos). Supondo que haja
memória suficiente para conter múltiplos programas, é mais eficiente manter vários programas na memória de uma vez do que alocar toda ela para um único programa, especialmente se ele precisar apenas de uma pequena fração do total. É claro que isso levanta problemas de imparcialidade, proteção etc., e fica por conta do sistema operacional resolvê-los. Outro
recurso multiplexado no espaço é o disco (rígido). Em muitos sistemas, um único disco pode conter arquivos de muitos usuários ao mesmo tempo. Alocar espaço em disco e controlar quem está usando quais blocos de disco é uma típica tarefa de gerenciamento de recursos do sistema operacional.
Chamadas de Sistemas
As chamadas de sistemas são funções (interfaces) usadas pelos aplicativos para solicitar a execução de algum serviço ao kernel do sistema operacional. Por isso, as chamadas de sistemas são instruções com maior privilégio quando comparadas às outras instruções.
Com as chamadas de sistemas é possível, por exemplo, definir acesso a recursos de baixo nível como alocação de memória, periféricos e arquivos. Além disso, são as chamadas de sistemas que permitem a criação e a finalização de processos.
Quando a execução de uma chamada de sistema é solicitada, o sistema operacional salva todo o contexto do processo (para continuar mais tarde de onde parou), verifica as permissões envolvidas no pedido e autoriza (se for o caso) o processador a executar o serviço solicitado.
Quando o processador termina a execução da chamada de sistema, o sistema operacional retorna o controle para o processo, colocando-o novamente na fila de processos prontos para a execução.
API
È uma forma de comunicação entre sistemas. Elas permitem a integração entre dois sistemas, em que um deles fornece informações e serviços que podem ser utilizados pelo outro, sem a necessidade de o sistema que consome a API conhecer detalhes de implementação do software.

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando