Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...

Full Transcript

Sistemas Operativos II Fundamentos sobre Sistemas Operativos Windows Fundamentos sobre SOs SO II – 24/25 Fundamentos sobre sistemas operativos Windows, família NT: Arquitetura e Componentes. Definições e Conceitos (Revisão) Estrutura de um...

Sistemas Operativos II Fundamentos sobre Sistemas Operativos Windows Fundamentos sobre SOs SO II – 24/25 Fundamentos sobre sistemas operativos Windows, família NT: Arquitetura e Componentes. Definições e Conceitos (Revisão) Estrutura de um sistema computacional Objetivos/funções Classificação Modelo/Estrutura Sistema Operativo Evolução família NT Arquitetura e Componentes do NT Objetivos/funções SO II – 24/25 Objetivos Um sistema operativo facilita a utilização de um computador, gerindo os seus recursos de forma eficiente e permitindo a evolução com o desenvolvimento e introdução de novas capacidades sem interferir com os serviços já disponibilizados, i. e.: Executar comandos e programas do utilizador Facilitar a utilização da máquina e do seu hardware de uma forma eficiente Fornecer uma interface entre o SO e o utilizador Gerir recursos Controlar a execução de programas e as respetivas operações de entrada e saída Objetivos/funções SO II – 24/25 Principais objetivos de um Sistema Operativo Gerir os recursos: O sistema operativo gere os recursos do computador, como a memória, o processador e os dispositivos de entrada e saída. Ele aloca esses recursos de forma eficiente para garantir que todos os programas em execução tenham o que precisam para funcionar corretamente. Seria difícil às aplicações controlar todos os aspetos da máquina física (interrupções, organização da memória, dispositivos, etc.), por isso o SO permite a abstração dos recursos físicos, oferecendo às aplicações um conjunto de recursos lógicos, tendo como objetivos final uma maior taxa de utilização dos recursos e a diminuição de custos. Estrutura de um sistema computacional SO II – 24/25 Principais objetivos de um Sistema Operativo Execução de Programas: O sistema operativo permite a execução de programas de utilizador, facilitando a solução de problemas e a realização de diversas tarefas Segurança e Integridade dos Dados: Garante a segurança e a integridade dos dados, controlando o acesso aos ficheiros e recursos do sistema. Objetivos/funções SO II – 24/25 Principais objetivos de um Sistema Operativo Interface Utilizadores/Aplicações: Fornece uma interface amigável e de alto nível para que os utilizadores e aplicações possam interagir com o computador, independentemente do hardware subjacente. Para os utilizadores: Utilização amigável do sistema com comandos e interface visual normalizado Abstração dos ficheiros, pastas, processos, etc. Objetivos/funções SO II – 24/25 Principais objetivos de um Sistema Operativo Para as aplicações: Interface de chamadas ao sistema normalizada Facilidade de utilização sem preocupação com detalhes de baixo nível, como por exemplo a leitura de dados de um ficheiro É uma camada virtual situada entre as aplicações e o hardware fazendo a ligação entre recursos do sistema e utilizadores / programas através dos recursos lógicos que oferece Objetivos/funções SO II – 24/25 Exemplos de recursos lógicos Recursos Lógicos Recursos Físicos ”virtualizados” Processos CPU Espaços de endereçamento Memória RAM, Unidade de virtuais Gestão de Memória Ficheiros Discos e dispositivo de armazenamento Periféricos virtuais Periféricos físicos Canais de comunicação Partilha de memória, redes de dados Utilizadores virtuais Utilizadores humanos Objetivos/funções SO II – 24/25 Funções de um Sistema Operativo Resumindo, os objetivos de um sistema operativo são as suas funções: Gerir os processos e o seu acesso à memória, ao periféricos e aos ficheiros e pastas Gerir a comunicação e sincronização entre processos, garantindo segurança e proteção Sem o SO os programadores teriam de implementar todo o código necessário para que um programa executasse diretamente sobre o hardware, através de linguagens de programação muito mais complexas! Objetivos/funções SO II – 24/25 Alternativas ao Sistema Operativo Quais seriam as desvantagens de não usar um sistema operativo? Dificuldade em gerir recursos: Sem um sistema operativo, seria extremamente difícil gerir os recursos do computador, o que poderia levar a conflitos e ineficiências. Cada aplicação poderia otimizar o seu desempenho mas globalmente a máquina ficaria subaproveitada. Falta de Interface Amigável: Os utilizadores teriam que interagir diretamente com o hardware, o que exigiria conhecimentos técnicos avançados. A ausência de uma interface gráfica tornaria o uso do computador muito mais complicado e menos intuitivo. Execução Limitada de Programas: Sem um sistema operativo, a execução de múltiplos programas simultaneamente seria praticamente impossível. Cada programa teria que ser executado de forma independente, sem a capacidade de multitarefa, o que levaria a uma repetição significativa de funções. Objetivos/funções SO II – 24/25 Alternativas ao Sistema Operativo Segurança e Proteção de Dados: A segurança dos dados estaria comprometida, pois não haveria políticas globais de segurança, tolerância a falhas, otimização, etc para controlar o acesso aos ficheiros e recursos do sistema. Isso aumentaria o risco de perda de dados e violações de segurança. Compatibilidade de Software: Muitos programas são desenvolvidos para funcionar em sistemas operativos específicos. Sem um sistema operativo, a compatibilidade de software seria um grande problema, limitando as opções de programas que poderiam ser utilizados, criando um elevado esforço de programação como mais tempo de programação e de testes para mitigar a maior probabilidade de erros SO II – 24/25 Sistemas Operativos II Fundamentos sobre Sistemas Operativos Windows Fundamentos sobre SOs SO II – 24/25 Fundamentos sobre sistemas operativos Windows, família NT: Arquitetura e Componentes. Definições e Conceitos (Revisão) Estrutura de um sistema computacional Objetivos/funções Classificação Modelo/Estrutura Sistema Operativo Evolução família NT Arquitetura e Componentes do NT Classificação SO II – 24/25 Do ponto de vista comercial podemos ter dois tipos de sistemas operativos: Sistemas Proprietários: Pagos e cujo código fonte não é disponibilizado de forma livre (Ex: Windows) Sistemas OpenSource: Grátis, cujo código fonte é disponibilizado de forma livre (Ex: Linux) Classificação SO II – 24/25 Quanto ao número de utilizadores Mono-utilizador Multi-utilizador Quanto ao número de tarefas em execução Mono-tarefa Multi-tarefa Quanto ao número de processos em execução Mono-processo Multi-processo Quanto ao número de sistemas físicos que utiliza Centralizado Distribuído Mono-utilizador: Apenas um utilizador Utilizador é essencial em sistemas interativos: pode utilizar o sistema de cada vez. Tem vários atributos: username, password, grupos, etc. Exemplo: MS-DOS, Windows 3.x Em sistemas multi‐utilizador, o conceito de utilizador é central para proteção de recursos Multi-utilizador: Vários utilizadores podem (Ex: ficheiros). utilizar o sistema simultaneamente, geralmente em ambientes de rede. Exemplo: Linux, Unix, Windows. Classificação SO II – 24/25 Quanto ao número de utilizadores Mono-utilizador Multi-utilizador Quanto ao número de tarefas em execução Mono-tarefa Multi-tarefa Quanto ao número de processos em execução Mono-processo Multi-processo Quanto ao número de sistemas físicos que utiliza Centralizado Distribuído Um processo em um sistema operativo é Exclusivo: Sistema operativo desenhado para aplicações basicamente um programa em execução. Quase específicas todos os SOs são multi-processo (Linux, Sistemas de Tempo Real, projetados para fornecer Windows), pois podem executar vários respostas imediatas a eventos externos. São usados em programas ao “mesmo tempo”. aplicações onde o tempo de resposta é crítico, como em sistemas de controle industrial e aeronáutico, i. e., Os processos são essenciais para o Mono‐processo. funcionamento de um sistema operativo, pois permitem a execução de múltiplos programas de Sistemas para Mainframes , projetados para processar forma eficiente e organizada. volumes enormes de informação, como transações de uma companhia aérea ou de um banco, i. e., Mono‐tarefa. Classificação SO II – 24/25 Quanto ao número de utilizadores Mono-utilizador Multi-utilizador Quanto ao número de tarefas em execução Mono-tarefa Multi-tarefa Quanto ao número de processos em execução Mono-processo Multi-processo Quanto ao número de sistemas físicos que utiliza Centralizado Distribuído Genérico: Sistema operativo desenhado para aplicações diversificadas, permite que vários utilizadores utilizem o sistema simultaneamente, sendo capaz de executar várias tarefas ao mesmo tempo, alternando rapidamente entre elas, i. e., Multi‐tarefa e Multi-processo. Classificação SO II – 24/25 Quanto ao número de utilizadores Mono-utilizador Multi-utilizador Quanto ao número de tarefas em execução Mono-tarefa Multi-tarefa Quanto ao número de processos em execução Mono-processo Multi-processo Quanto ao número de sistemas físicos que utiliza Centralizado Distribuído Centralizado: Sistema operativo que opera sobre um único computador, i. e., Monoprocessador. Distribuído: Sistema operativo gere um conjunto de computadores independentes, de forma que eles funcionem como um único sistema coeso, i. e., sistemas em rede ou com Multiprocessador. SO II – 24/25 Sistemas Operativos II Fundamentos sobre Sistemas Operativos Windows Fundamentos sobre SOs SO II – 24/25 Fundamentos sobre sistemas operativos Windows, família NT: Arquitetura e Componentes. Definições e Conceitos (Revisão) Estrutura de um sistema computacional Objetivos/funções Classificação Modelo/Estrutura Sistema Operativo Evolução família NT Arquitetura e Componentes do NT Modelo / Estrutura SO II – 24/25 Um sistema operativo é um software essencial que gere os recursos de hardware e software de um computador, permitindo a execução de programas. A estrutura de um sistema operativo pode ser dividida em várias camadas ou modelos, cada uma com suas próprias características e funções: Monolítica Hierárquica (camadas) Máquina Virtual Modular Modelo / Estrutura SO II – 24/25 Monolítica A estrutura monolítica de um sistema operativo é uma das arquiteturas mais antigas e comuns. Neste modelo, todos os componentes do sistema operativo são integrados num único bloco de código, formando um grande programa executável. Características da Estrutura Monolítica Integração Completa: Todos os componentes do sistema operativo, como gestão de processos e de memória, sistema de ficheiros e drivers de dispositivos, estão contidos no núcleo (kernel). Estes componentes podem interagir livremente entre si, utilizando chamadas de função. Desempenho: A comunicação direta entre os componentes pode resultar em alta eficiência e desempenho, pois há menos sobrecarga de comunicação. Modelo / Estrutura SO II – 24/25 Características da Estrutura Monolítica – cont. Complexidade: Devido à integração completa, o núcleo monolítico tende a ser grande e complexo. Um erro numa rotina pode comprometer todo o sistema, tornando a depuração e manutenção mais difíceis. Acesso Irrestrito: Todos os componentes funcionais do kernel têm acesso irrestrito às estruturas de dados e rotinas internas, o que pode aumentar a vulnerabilidade a falhas e problemas de segurança. Exemplos: UNIX, FreeBSD, MS-DOS, Windows 95, 98 e Me Modelo / Estrutura SO II – 24/25 Vantagens do Sistema Operativo Monolítico Desempenho Elevado: A comunicação direta entre os componentes do núcleo (kernel) e a sua integração interna forte, reduz a sobrecarga de chamadas de sistema, permitindo que detalhes de baixo nível de hardware sejam explorados, resultando num desempenho mais rápido e eficiente. Simplicidade na Comunicação: Todos os componentes do sistema operativo estão integrados num único bloco de código, facilitando a comunicação e a coordenação entre eles. Eficiência de Execução: Devido à integração completa, as operações podem ser executadas de forma mais eficiente, sem a necessidade de passar por várias camadas de abstração. Modelo / Estrutura SO II – 24/25 Vantagens do Sistema Operativo Monolítico Facilidade de Implementação Inicial: Para sistemas menores ou menos complexos, a implementação de um núcleo monolítico pode ser mais simples e direta, pois não requer a separação dos componentes em diferentes módulos ou camadas. Menor Latência: A interação direta entre os componentes do núcleo, além de tornar o sistema mais compacto, pode resultar em menor latência, o que é benéfico para aplicações que exigem respostas rápidas. Estas vantagens tornam os sistemas operativos monolíticos a escolha mais adequada para muitos ambientes, especialmente onde o desempenho e a eficiência são críticos. No entanto, é importante considerar também as desvantagens… Modelo / Estrutura SO II – 24/25 Desvantagens do Sistema Operativo Monolítico Complexidade de Manutenção: Devido à integração completa de todos os componentes no núcleo (kernel), qualquer alteração ou atualização pode ser complexa e arriscada. Um erro numa parte do código pode afetar todo o sistema. Vulnerabilidade a Falhas: Como todos os componentes têm acesso ilimitados às estruturas de dados e rotinas internas, um erro numa rotina pode comprometer todo o sistema, resultando em falhas catastróficas. Dificuldade de Depuração (debugging): A depuração de um núcleo monolítico pode ser desafiadora devido à interdependência dos componentes. Identificar a origem de um problema pode ser complicado e demorado, pois os seus componentes estão todos no mesmo lugar. Modelo / Estrutura SO II – 24/25 Desvantagens do Sistema Operativo Monolítico Falta de Modularidade: A estrutura monolítica não separa claramente os componentes em módulos independentes, o que dificulta a reutilização de código e a implementação de novas funcionalidades de forma isolada. Pequenas alterações na estrutura de dados de um componente, podem ter um impacto inesperado noutros componentes. Segurança: Acesso irrestrito aos componentes internos pode aumentar a vulnerabilidade a ataques e falhas de segurança. Qualquer componente comprometido pode potencialmente afetar todo o sistema. Modelo / Estrutura SO II – 24/25 Desvantagens do Sistema Operativo Monolítico Escalabilidade Limitada: A estrutura monolítica pode não ser ideal para sistemas que precisam escalar rapidamente ou que requerem alta modularidade e flexibilidade. Essas desvantagens tornam os sistemas operativos monolíticos menos adequados para ambientes que exigem alta segurança, modularidade e facilidade de manutenção Modelo / Estrutura SO II – 24/25 Hierárquica (camadas) A estrutura hierárquica, ou em camadas, de um sistema operativo organiza suas funcionalidades em diferentes níveis (camadas), cada um com responsabilidades específicas. Este modelo foi desenvolvido para melhorar a organização, manutenção e modularidade dos sistemas operativos. Modelo / Estrutura SO II – 24/25 Características da estrutura hierárquica Divisão em Camadas: O sistema operativo é dividido em várias camadas, onde cada camada oferece serviços para a camada imediatamente superior e utiliza os serviços da camada imediatamente inferior. Isolamento e Modularidade: Cada camada é isolada das outras, o que facilita a depuração e a manutenção. Problemas em uma camada não afetam diretamente as outras camadas. Facilidade de Atualização: A modularidade permite que cada camada seja atualizada ou modificada independentemente, sem a necessidade de alterar todo o sistema. Modelo / Estrutura SO II – 24/25 Características da estrutura hierárquica – cont. Aplicações e Utilizadores Hierarquia de Funções: Chamada aos sistema As camadas são organizadas de Sistema de ficheiros forma hierárquica, começando do Gestão de entrada/saída (I/O) hardware na camada mais baixa Drivers de dispositivos até aos utilizadores e aplicações na camada mais alta. Gestão de memória Gestão de processos Hardware Modelo / Estrutura SO II – 24/25 Vantagens da Estrutura em Camadas Organização Clara: A divisão em camadas proporciona uma organização clara e lógica do sistema operativo. Facilidade de Manutenção: A modularidade facilita a manutenção e a depuração, pois problemas podem ser isolados em camadas específicas. Reutilização de Código: Componentes de uma camada podem ser reutilizados em diferentes sistemas operativos, aumentando a eficiência do desenvolvimento. Modelo / Estrutura SO II – 24/25 Desvantagens da Estrutura em Camadas Desempenho: A comunicação entre camadas pode introduzir alguma sobrecarga, afetando o desempenho. Complexidade Inicial: A implementação inicial de um sistema em camadas pode ser mais complexa devido à necessidade de definir interfaces claras entre as camadas. Modelo / Estrutura SO II – 24/25 Exemplos de Sistemas Operativos em Camadas THE (Technische Hogeschool Eindhoven): Um dos primeiros sistemas a utilizar essa estrutura, desenvolvido por E. W. Dijkstra e seus alunos. Multics: Um sistema operativo pioneiro que influenciou muitos sistemas modernos. Windows NT: Utiliza uma estrutura em camadas para separar o modo usuário do modo kernel. Modelo / Estrutura SO II – 24/25 Virtualização A estrutura de um sistema operativo baseado em máquina virtual (VM) cria um ambiente onde múltiplos sistemas operativos podem ser executados simultaneamente num único hardware físico. Modelo / Estrutura SO II – 24/25 Características e vantagens da Estrutura de Máquina Virtual Nível Intermediário (Hypervisor): Um software chamado hypervisor cria um nível intermediário entre o hardware físico e os sistemas operativos virtuais. Ele gere os recursos de hardware e permite a criação e execução de várias máquinas virtuais. Máquinas Virtuais (VMs): Cada máquina virtual é uma réplica isolada de um sistema físico, com o seu CPU, memória, interface de rede e armazenamento. As VMs funcionam como sistemas independentes, permitindo a execução de diferentes sistemas operativos no mesmo hardware. Modelo / Estrutura SO II – 24/25 Características e vantagens da Estrutura de Máquina Virtual Isolamento e Segurança: As VMs são isoladas umas das outras, o que aumenta a segurança e a estabilidade. Problemas num VM não afetam as outras VMs ou o sistema hospedeiro. Flexibilidade e Escalabilidade: A estrutura de máquina virtual permite criar facilmente escalabilidade e flexibilidade. Novas VMs podem ser criadas conforme necessário, e os recursos podem ser alocados dinamicamente entre as VMs. Modelo / Estrutura SO II – 24/25 Exemplos de hypervisores VMware ESXi: Um hypervisor de tipo 1 amplamente utilizado em ambientes corporativos. Microsoft Hyper-V: Integrado ao Windows Server KVM (Kernel-based Virtual Machine): Um hypervisor de código aberto para Linux. A estrutura de máquina virtual é ideal para ambientes que requerem alta flexibilidade, eficiência de recursos e isolamento seguro. Modelo / Estrutura SO II – 24/25 Modular A estrutura modular de um sistema operativo organiza o sistema em módulos independentes, à volta de um núcleo (kernel), cada um responsável por uma funcionalidade específica. Esta arquitetura visa melhorar a modularidade, manutenção e flexibilidade do sistema operativo. Facilmente adaptável a sistemas distribuídos, em teoria pode considerar-se ter uma estrutura mais estável. Modelo / Estrutura SO II – 24/25 Características da Estrutura Modular A Modularidade: O sistema operativo é dividido em módulos distintos, cada um com uma função específica, como gestão de processos, gestão de memória, sistema de ficheiros, etc. Interação através de Interfaces: Os módulos interagem entre si através de interfaces bem definidas. Isso permite que cada módulo seja desenvolvido, testado e atualizado de forma independente. Modelo / Estrutura SO II – 24/25 Características da Estrutura Modular Facilidade de Manutenção: A modularidade facilita a manutenção e a atualização do sistema. Problemas podem ser isolados e corrigidos em módulos específicos sem afetar o restante do sistema. Reutilização de Código: Módulos podem ser reutilizados em diferentes sistemas operativos, aumentando a eficiência do desenvolvimento e a consistência entre diferentes sistemas. Modelo / Estrutura SO II – 24/25 Vantagens da Estrutura Modular Flexibilidade: Permite a adição ou remoção de funcionalidades sem grandes alterações no sistema. Facilidade de Depuração (debugging): Problemas podem ser isolados em módulos específicos, facilitando a depuração e correção de erros. Escalabilidade: O sistema pode ser facilmente escalado adicionando novos módulos conforme necessário Exemplos: Linux e Windows NT SO II – 24/25

Use Quizgecko on...
Browser
Browser