Baixe o app para aproveitar ainda mais
Prévia do material em texto
Prof. Giulio Suzumura Sistemas Operacionais Sistemas Operacionais ● Parte I – Conceitos Básicos ● Parte II – Processos e Threads ● Parte III –Gerência de Recursos ● Visão Geral ● Conceitos de HW e SW ● Concorrência ● Estrutura do SO Parte I Conceitos Básicos Visão Geral ● Sistema Computacional ● Sistema Operacional ○ Funções Básicas ○ Máquina de Camadas ● Tipos de Sistemas Operacionais ○ Monoprogramáveis ○ Multiprogramáveis ○ com Múltiplos Processadores Sistema Computacional Google Pixel 4 XL Samsung Galaxy Note 10+ Apple iPhone 11 Pro Max DIMENSIONS AND WEIGHT 160.4 x 75.1 x 8.2 mm, 193 g 162.3 x 77.2 x 7.9 mm, 196 g 158 x 77.8 x 8.1 mm, 226 g DISPLAY 6.3 inches, 1440 x 3040p (Quad HD+), P-OLED 6.8 inches, 1440 x 3040p (Quad HD+), Dynamic AMOLED 6.5 inches, 1242 x 2688p (Full HD+), Super Retina XDR OLED PROCESSOR Qualcomm Snapdragon 855, octa-core 2.84 GHz Samsung Exynos 9825, octa-core 2.73 GHz Apple A13 Bionic, hexa-core 2.65 GHz MEMORY 6 GB RAM, 128 GB – 6 GB RAM, 64 GB 12 GB RAM, 256 GB – 12 GB RAM, 512 GB – micro SD slot 4 GB RAM, 64 GB – 4 GB RAM, 256 GB – 4 GB RAM, 512 GB SOFTWARE Android 10 Android 9 Pie, One UI iOS 13 https://www.gizmochina.com/2020/01/02/google-pixel-4-xl-vs-samsung-galaxy-note-10-v s-iphone-11-pro-max-specs-comparison/ https://www.gizmochina.com/2020/01/02/google-pixel-4-xl-vs-samsung-galaxy-note-10-vs-iphone-11-pro-max-specs-comparison/ https://www.gizmochina.com/2020/01/02/google-pixel-4-xl-vs-samsung-galaxy-note-10-vs-iphone-11-pro-max-specs-comparison/ Sistema Computacional https://en.wikipedia.org/wiki/Comparison_of_Texas_Instruments_graphing_calculators https://en.wikipedia.org/wiki/Comparison_of_Texas_Instruments_graphing_calculators Sistema Computacional Sistema Computacional é um conjunto de circuitos eletrônico interligados, formado por diferentes dispositivos físicos. Todos esses dispositivos manipulam dados na forma digital, proporcionando confiabilidade na representação e transmissão de dados. Todos os dispositivos podem ser divididos entre três tipos de unidades funcionais: ○ Processador ou Unidade Central de Processamento (CPU) ○ Memória principal ○ Dispositivos de Entrada/Saída (I/O) Hardware - Modelo de Von Neumann Unidade de Controle Unidade Lógica e Aritmética Registradores Unidade Central de Processamento Dispositivos de Entrada Dispositivos de Saída Monitor Impressora Teclado Mouse Memória Principal Armazenamento Memória Secundária Barramentos Computador Máquina capaz de realizar diversos tipos de tratamento automático de informações ou processamento de dados. Pode ser dividido em: Software ○ Parte lógica do sistema de computação ○ Reconfigurável Hardware ○ Parte física do sistema de computação ○ Geralmente não é reconfigurável Hardwares Softwares Computador Hardware Usuário Softwares de Aplicações Softwares de Sistemas Visão Geral ● Sistema Computacional ● Sistema Operacional ○ Funções Básicas ○ Máquina de Camadas ● Tipos de Sistemas Operacionais ○ Monoprogramáveis ○ Multiprogramáveis ○ com Múltiplos Processadores Sistema Operacional O SO é visto como uma máquina estendida, isto é, teoricamente mais fácil de programar que o hardware. Camada de software acima do hardware, para gerenciar todos os componentes do sistema, apresentando aos usuário e programadores uma interface simples de entender e de programar. Por exemplo, a maioria dos programadores não deseja envolver-se com detalhes da programação de uma unidade de disco rígido. O SO deve ocultar o hardware. Esta abstração é o elemento-chave para gerenciar complexidade. Sistema Operacional Sistema operacional (em inglês: Operating System - OS) é um programa ou um conjunto de programas cuja função é gerenciar os recursos do sistema (por exemplo, definir qual programa recebe atenção do processador, gerenciar memória, criar um sistema de arquivos etc.), fornecendo uma interface entre o computador e o usuário. https://pt.wikipedia.org/wiki/Sistema_operativo https://pt.wikipedia.org/wiki/Sistema_operativo Funções Básicas Um sistema operacional, por mais complexo que possa parecer, é apenas um conjunto de rotinas executado pelo processador, de forma semelhante aos programas dos usuários. Sua principal função é controlar o funcionamento de um computador, gerenciando a utilização e o compartilhamento dos seus diversos recursos, como processadores, memórias e dispositivos de entrada e saída. Funções Básicas Sem um sistema operacional, um usuário para interagir com o computador deveria conhecer profundamente diversos detalhes sobre hardware do equipamento, o que tornaria seu trabalho lento e com grandes possibilidades de erros. As duas principais funções são facilidade de acesso aos recursos do sistema e compartilhamento de recursos de forma organizada e protegida. Máquina de Camadas O computador pode ser visualizado como uma máquina de níveis ou máquina de camadas, possuindo tantos níveis quanto forem necessários para adequar o usuário às suas diversas aplicações. Quando o usuário está trabalhando em um desses níveis, não necessita saber da existência das outras camadas. Com isso a interação entre usuário e computador apresenta-se mais simples, confiável e eficiente. Visão Geral Visão Geral ● Sistema Computacional ● Sistema Operacional ○ Funções Básicas ○ Máquina de Camadas ● Tipos de Sistemas Operacionais ○ Monoprogramáveis ○ Multiprogramáveis ○ com Múltiplos Processadores Tipos de Sistemas Operacionais Sistemas Monoprogramáveis Os primeiros sistemas operacionais eram tipicamente voltados para a execução de um único programa. Qualquer outra aplicação, para ser executada, deveria aguardar o término do programa corrente. Os sistemas monotarefa, como também são chamados, caracterizam-se por permitir que todos os recursos do sistema fiquem exclusivamente dedicados a uma única tarefa. Sistemas Multiprogramáveis Neste tipo de sistema, os recursos computacionais são compartilhados entre os diversos usuários e aplicações. O sistema operacional se preocupa em gerenciar o acesso concorrente aos seus diversos recursos, como memória, processador e periféricos, de forma ordenada e protegida, entre os diversos programas Sistemas Mono vs. Multi A principal vantagem dos sistemas multiprogramáveis é a redução de custos em função da possibilidade do compartilhamento dos diversos recursos entre as diferentes aplicações. Além disso, sistemas multiprogramáveis possibilitam na média a redução total do tempo de execução das aplicações. Os sistemas multiprogramáveis, apesar de mais eficientes que os monoprogramáveis, são de implementação muito mais complexa. Sistemas Multi – Gerência de Usuários Podemos classificar os sistemas multiprogramáveis como monousuário ou multiusuário. Sistemas multiprogramáveis monousuário são encontrados em computadores pessoais e estações de trabalho, onde há apenas um único usuário interagindo com o sistema. Neste caso existe a possibilidade da execução de diversas tarefas ao mesmo tempo, como a edição de um texto, uma impressão e o acesso à Internet. Sistemas multiprogramáveis multiusuário são ambientes interativos que possibilitam a diversos usuários conectarem-se ao sistema simultaneamente. Sistemas Multi – Gerência de Aplicações Sistemas Batch Os sistemas batch foram os primeiros tipos de sistemas operacionais multiprogramáveis a serem implementados na década de 1960. O processamento batch tem a característica de não exigir a interação do usuário com a aplicação. Todas as entradas e saídas de dados da aplicação são implementadas por algum tipo de memória secundária. Alguns exemplos de aplicações originalmente processadas em batch são programas envolvendo cálculos numéricos, compilações, ordenações, backups e todos aqueles onde não é necessária a interaçãocom o usuário. Atualmente, os sistemas operacionais implementam ou simulam o processamento batch, não existindo sistemas exclusivamente dedicados a este tipo de processamento. Sistemas de Tempo Compartilhado Os sistemas de tempo compartilhado (time-sharing) permitem que diversos programas sejam executados a partir da divisão do tempo do processador em pequenos intervalos, denominados fatia de tempo (time-slice). Caso a fatia de tempo não seja suficiente para a conclusão do programa, ele é interrompido pelo sistema operacional e substituído por um outro, enquanto fica aguardando por uma nova fatia de tempo. A maioria das aplicações comerciais atualmente é processada em sistemas de tempo compartilhado, pois elas oferecem tempos de respostas razoáveis a seus usuários e custos mais baixos, em função da utilização compartilhada dos diversos recursos do sistema. Sistemas de Tempo Real Enquanto em sistemas de tempo compartilhado o tempo de processamento pode variar sem comprometer as aplicações em execução, nos sistemas de tempo real (real-time) os tempos de processamento devem estar dentro de limites rígidos, que devem ser obedecidos, caso contrário poderão ocorrer problemas irreparáveis. Nos sistemas de tempo real não existe a ideia de fatia de tempo, implementada nos sistemas de tempo compartilhado. Um programa utiliza o processador o tempo que for necessário ou até que apareça outro mais prioritário. Visão Geral ● Sistema Computacional ● Sistema Operacional ○ Funções Básicas ○ Máquina de Camadas ● Tipos de Sistemas Operacionais ○ Monoprogramáveis ○ Multiprogramáveis ○ com Múltiplos Processadores Sistemas com Múltiplos Processadores Os sistemas com múltiplos processadores caracterizam-se por possuir duas ou mais UCPs interligadas e trabalhando em conjunto. A vantagem deste tipo de sistema é permitir que vários programas sejam executados ao mesmo tempo ou que um mesmo programa seja subdividido em partes para serem executadas simultaneamente em mais de um processador. Os conceitos aplicados ao projeto de sistemas com múltiplos processadores incorporam os mesmos princípios básicos e benefícios apresentados na multiprogramação, além de outras características e vantagens específicas como escalabilidade, disponibilidade e balanceamento de carga. Tipos de Sistemas com Múltiplos Processadores Um fator-chave no desenvolvimento de sistemas operacionais com múltiplos processadores é a forma de comunicação entre as UCPs e o grau de compartilhamento da memória e dos dispositivos de entrada e saída. Em função desses fatores, podemos classificar os sistemas com múltiplos processadores em fortemente acoplados ou fracamente acoplados. Sistemas Fortemente Acoplados Nos sistemas fortemente acoplados (tightly coupled) existem vários processadores compartilhando uma única memória física (shared memory) e dispositivos de entrada/saída sendo gerenciados por apenas um sistema operacional. Os sistemas fortemente acoplados podem ser divididos em Simétricos e Assimétricos. Atualmente, a grande maioria dos sistemas operacionais, como o Unix e o Microsoft Windows, implementa esta funcionalidade. Sistemas Fracamente Acoplados Os sistemas fracamente acoplados (loosely coupled) caracterizam-se por possuir dois ou mais sistemas computacionais conectados através de linhas de comunicação. Cada sistema funciona de forma independente, possuindo seu próprio sistema operacional e gerenciando seus próprios recursos, como UCP, memória e dispositivos de entrada/saída. Podemos dividir os sistemas fracamente acoplados em Sistemas Operacionais de Rede e Sistemas Distribuídos. 1. Quais os tipos de sistemas operacionais existentes? 2. Por que se pode dizer que existe uma subutilização de recursos em sistemas monoprogamáveis? 3. Qual a grande diferença entre sistemas monoprogamáveis e sistemas multiprogramáveis? 4. Quais as vantagens dos sistemas multiprogramáveis? 5. Quais são os tipos de sistemas multiprogramáveis? 6. Como funcionam os sistemas de tempo compartilhado? Exercícios
Compartilhar