SO 10ºANO » MÓDULO 1 - INTRODUÇÃO AOS SISTEMAS OPERATIVOS

SISTEMAS OPERATIVOS


1. Conceitos básicos sobre sistemas operativos

Steve Jobs e Bill Gates


Um sistema informático é composto pela sua parte física – hardware – e pela sua parte não física – software.

O software é um conjunto de instruções ou programas capazes de fazerem funcionar o hardware.
O software de um sistema informático estrutura-se em duas camadas principais:

 Software de Sistema: é o conjunto de informações processadas pelo sistema interno de um computador que permite a interação entre o utilizador e os periféricos do computador através de uma interface gráfica. Engloba o sistema operativo e os controladores de dispositivos (memória, impressora, teclado e outros).

Exemplos:

 Software de Aplicação: são programas de computador que permitem ao utilizador executar uma série de tarefas específicas em diversas áreas de atividade tais como arquitetura, contabilidade, educação, medicina e outras áreas comerciais. São ainda os videojogos, as base de dados, os sistemas de automação industrial, etc.

Exemplos:

 Um sistema operativo (Operating System) é o software principal de um sistema de computador. 
O SO cria uma interligação entre o utilizador e o hardware. Permite também que os outros softwares interajam com o hardware

 

 O Sistema Operativo (SO) é um conjunto de programas e rotinas que permitem explorar os recursos de um sistema informático e é indispensável ao seu funcionamento. O SO coloca à disposição do utilizador o hardware (equipamento como o processador, memórias, disco rígido, impressora, teclado, monitor, disquetes, etc…) e o software (informação como os programas, dados, etc.).

Um sistema operativo é, portanto, a primeira camada de software indispensável para que um sistema informático possa funcionar, nomeadamente: gerir o trabalho do processador e a utilização da memória; assegurar a interação com os periféricoscontrolar as diversas solicitações dos programas em relação aos recursos do sistema, organizar a informação, etc.


EXERCÍCIO 1

  Publica no teu blog um artigo com o título:
Software de Sistema e Software de Aplicaçao.

O artigo deve apresentar os conceitos e fornecer exemplos.

Um sistema Operativo (SO) é o software básico de um computador que fornece uma interface entre os outros programas de computador, dispositivos de hardware e o utilizador.

.As principais funções do SO são:
- administrar os recursos da máquina, 
- coordenar o hardware 
- e organizar ficheiros e as pastas nos dispositivos de armazenamento.

Os SO mais utilizados são:

Linux: Existem muitas distribuições Linux, incluindo Ubuntu, OpenSuse, Debian e outros. A principal vantagem do Linux é que o código-fonte é livre ( Open Source) e por isso pode ser modificado. O Linux é compatível com processadores Intel e AMD.

Mac Os:  o sistema operativo Mac OS da Apple é muito fácil de usar. Inclusive é mais fácli de usar do que o Windows. O Mac OS é excelente para designers gráficos e até mesmo uma criança pode usá-lo sem dificuldade. Desvantagem de Mac OS: Mac OS é compatível apenas com computadores Apple.

Do Windows: Há uma enorme quantidade de software para Windows. O Windows é recomendado para uso no escritório. O Windows é compatível com processadores Intel e AMD.

CRONOLOGIA/EVOLUÇÃO DOS SISTEMAS OPERATIVOS

DÉCADA DE 40
Os primeiros sistemas computacionais não tinham SO.
Os utilizadores tinham acesso à linguagem da máquina.
Todas as instruções eram codificadas manualmente.
DÉCADA DE 50
Surgiu o primeiro SO. Este SO só começava a executar um programa quando terminava o anterior.
Surgiu o conceito de SO.
O Laboratório de Investigação da General Motors implementou o primeiro sistema operativo para o sistema IBM 701. A introdução do transistor mudou drasticamente a imagem dos computadores.
Aparecem os conceitos de multitarefa, multiutilizador, multiprocessador e sistema em tempo real.
DÉCADA DE 60
Aparece o UNIX (base dos sistemas atuais).
Desenvolvimento dos sistemas compartilhados, com multimprogramação e os princípios do multiprocessamento.
Desenvolvimento dos sistemas compartilhados e de tempo real.
DÉCADA DE 70
Surgimento da linguagem C que serviu para redesenhar o sistema UNIX.
Crescimento das redes de computadores.
Lançamento do sistema IBM 360.
DÉCADA DE 80
Nasceram os sistemas MAC-OS, MS-DOS, Windows.
DÉCADA DE 90
Nasceu o LINUX
...

EXERCÍCIO 2

  Constrói no Prezi uma apresentação sobre a evolução dos Sistemas Operativos.
Publica a apresentação no Blog.

2. Funções e características de um SO

Um sistema operativo pode ser analisado a dois níveis principais:

Nível do núcleo (kernel);
Nível da interface com o utilizador.

 

Nível do núcleo (também designado por kernel): 
a este nível o SO é responsável por gerir o funcionamento do hardware e controlar as solicitações do utilizador e dos seus programas em relação a esses recursos de hardware.

 Nível da interface com o utilizador :
é o nível do SO em que o utilizador pode interagir com o sistema. Quanto ao interface, este pode ser de dois tipos fundamentais:

CLI – Command Line Interface
GUI – Graphics User Interface

 
CLI (Command Line Interface) – sistemas operativos em que a interface com o utilizador surge sob a forma de ecrã de texto, no qual o utilizador digita as instruções que pretende dar ao sistema através duma linha de comandos. Exemplo: MS DOS 

GUI ( Graphics User Interface) – a interação com o utilizador surge sob a forma de uma interface gráfica, normalmente com janelas, ícones, quadros de diálogo, botões, etc; as instruções que o utilizador dá ao sistema são, na maior parte, ações do rato sobre os referidos elementos gráficos. Exemplos: Windows 7.


PROCESSOS

O processo é um conceito-chave da teoria dos sistemas operativos.
Basicamente um processo é um programa em execução. 
No windows para obter a lista dos processos em execução usa-se a combinação de teclas CTRL+ALT+DEL.

Cada processo possui um espaço de endereçamento para leitura e/ou escrita. 
Um espaço de endereçamento do processo contém o programa executável, os dados do programa e a pilha (stack) associada.
A pilha é uma memória especial utilizada na execução de rotinas do núcleo. A um processo podem estar associados alguns registos de hardware com as informações necessárias é execução e à paragem do programa.

http://www.tecmundo.com.br/memoria/3197-o-que-sao-processos-de-um-sistema-operacional-e-por-que-e-importante-saber.htm
 http://atikum.ueuo.com/atikum_bibliotecaonline/computacao/so/teoria/tutorapido01/so_intro_frame.htm


CHAMADAS AO SISTEMA

O SO tem mecanismos de proteção do núcleo. Caso uma aplicação, com acesso ao núcleo, realize uma operação que o danifique, todo o sistema poderá ficar comprometido.

Quando o utilizador ou um processo solicitam algum serviço do sistema, é realizada uma chamada a uma das rotinas ou serviços do sistema (system calls). As chamadas ao sistema permitem o acesso ao núcleo do SO. Para cada serviço existe uma chamada associada; cada SO tem o seu próprio conjunto (biblioteca) de chamadas, com nomes, parâmetros e formas específicas de ativação.

Através dos parâmetros fornecidos pelas chamadas ao sistema, o pedido é processado e uma resposta é retornada à aplicação. O mecanismo de ativação e de comunicação entre a aplicação e o sistema é semelhante ao mecanismo implementado quando um programa modular ativa um dos seus procedimentos ou funções.

As chamadas ao sistema podem ser divididas em grupos de função:

Gestão de processos

 Gestão de memória

 Gestão de Entrada/saída


Proteção e fiabilidade

Nas rotinas do núcleo são implementados mecanismos de proteção aos diversos recursos que são partilhados, como memória, dispositivos de E/S e CPU. Caso um programa tente aceder a posições de memória fora da sua área, um erro do tipo violação de acesso ocorre e o programa é encerrado.

O mecanismo para o controlo de acesso à memória varia em função do tipo de gestão de memória implementada pelo sistema.

A utilização dos periféricos (impressoras, scanner, etc) obriga ao controlo da partilha de dispositivos de E/S de forma a que nehum programa interfira quando um recursos está reservado a outro programa. Estes problemas são controlados de forma centralizada pelo SO. O acesso concorrente (deadlock) é um mecanismo de controlo aos recursos do sistema. Este mecanismo de proteção está implementado na maioria dos sistemas multiprogramáveis e denomina-se modos de acesso.

EXERCÍCIO 3

  Produz no Google docs um documento sobre os processos do SO.
Publica a apresentação no Blog.

3. O Núcleo do SO

O kernel é o “cérebro” do computador. Peça fundamental dos sistemas operativos, o núcleo é a ligação entre o processamento dos dados e os programas. Apesar de estar também presente no Windows e no Mac OS, o núcleo ficou mais conhecido com o desenvolvimento do Linux.

O kernel é responsável por ser o elo do hardware (parte física) com o software (parte lógica) do computador. Por outras palavras, o principal objetivo é gerir o computador e permitir que as aplicações sejam executadas e façam uso dos recursos que a máquina tem. O núcleo também tem que garantir, por exemplo, que a memória RAM seja usada sem risco para o computador.

Assim que liga o PC, o kernel é acionado e começa a detetar todo o hardware (monitor, placa de vídeo, etc.). Depois que o sistema operativo é carregado, o núcleo assume outras funções: gerir os processos, os arquivos, a memória e os dispositivos periféricos, assumindo-se como sendo“gestor” de tudo o que acontece na máquina.

O kernel tem ainda a responsabilidade de decidir, a qualquer momento, quais os programas que num dado momento devem ser alocados para o processador (ou processadores). No caso de haver dois ou mais, cada um deles geralmente só pode executar um programa por vez.

Cada vez que um dispositivos (um pendrive, por exemplo) é ligado ao computador, o kernel age na gestão da memória e na comunicação com o hardware.


4. Gestão da memória

O SO tem como função reservar zonas de memória a cada um dos programas em execução.

Um programa reside no disco sob a forma de ficheiro executável .

Para ser executado, o programa tem de ser colocado em memória e associado a um processo „

Em função da política de gestão de memória, o processo poderá transitar entre o disco e a memória durante o seu tempo de execução „

À medida que o processo é executado, este pode aceder ao subsistema de gestão de memória para: ‰ aceder ao seu código ‰ aceder a dados ‰ requisitar espaço de memória „

Ao terminar, a memória por ele utilizada é libertada.

A maior parte dos SO permite que um programa possa ser colocado em qualquer posição de memória.

No entanto esta atribuição pode ser feita em: ‰

Tempo de compilação – se a localização do programa poder ser conhecida à priori é gerado código com endereços absolutos. Alterações à localização do programa obrigam à sua recompilação ‰

Tempo de carga – obriga o compilador a gerar código relocatável, a atribuição do programa a um determinado conjunto de endereços é feita na sua carga para memória ‰ Em run-time – se durante a execução do programa este poder ser recolocado noutra localização de memória. O que implica a utilização de hardware específico.


O sistema operativo atribui a cada programa em execução uma fatia de memória, os mais desenvolvidos implementam a memória virtual que é o método de utilizar o disco rígido do computador como uma extensão da memória RAM.

Na memória virtual as instruções e os dados do programa são divididos em unidades de tamanho fixo em páginas.


5. Entrada e Saída de dados

É a parte do sistema operativo que faz a interface com o utilizador é chamado por shell.

Existem 3 tipos de interface de sistemas operativos com o utilizador:


6. O Sistema de Ficheiros

Um sistema de arquivos é um conjunto de normas e procedimentos para o armazenamento de informações. Cada sistema operativo tem um sistema de ficheiros.

Um arquivo é um conjunto de dados tais como uma imagem ou um texto. Existem diferentes tipos de ficheiros. Todas as informações que estão num computador são guardadas como arquivos/ficheiros.

Cada sistema operativo geralmente usa um sistema de arquivos diferente. Mas todos compartilham o mesmo conceito: a pasta. A pasta é uma forma de agrupar arquivos livremente. As pastas também são conhecidas como diretórios.

O Sistema de arquivos de um dado SO é chamado o sistema de arquivos nativo. Essa é a forma como um SO prefere manter as informações.

Todos os dispositivos de armazenamento utilizam um sistema de arquivos. Lembre-se que um dispositivo de armazenamento é tanto um disco rígido como um CD ou memória USB. 

No entanto, os sistemas de arquivos nativos nem sempre podem ser lidos entre os SO. Por exemplo, muitos GNU / Linux podem ler o sistema de arquivos do Windows, mas o Windows não consegue ler qualquer um dos sistemas que usa GNU / Linux.


7. Gestão de Recursos

Um Sistema Operativo pode ser visto como um programa de grande complexidade, responsável pela gestão eficiente de todos os recursos da máquina „.

Composto por um conjunto de camadas funcionais (módulos).

„Cada módulo constitui um nível de abstracção que implementa uma máquina virtual com uma interface bem definida.

O Sistema Operativo é uma das componentes nucleares de qualquer sistema informático, podendo dividir-se a sua principal função por três definições diferentes:

1 – Pode ser considerado como um gestor de recursos, fornecendo um conjunto de recursos lógicos ás aplicações, tendo como função tratar os pedidos das aplicações, de forma a manipular esses recursos lógicos, executando operações que efectuam a gestão dos respectivos recursos físicos.

2 – Pode ser considerado como um fornecedor de uma interface simples e uniforme para os recursos físicos, interface essa que se encontra dividida em interface operacional, vocacionada para os utilizadores poderem manipular directamente os recursos lógicos, e interface de programação, que corresponde à biblioteca de chamadas sistema.

3 – Pode ser considerado como uma máquina virtual, que encapsula todos os detalhes dos recursos físicos, numa abstracção que virtualiza o hardware e todos os mecanismos de baixo nível. Este é um conceito utilizado regularmente, quando nos referimos a uma máquina Windows ou Linux, independentemente da máquina física onde o sistema é executado. Desta forma, esta visão pode considerar-se como que agregadora das anteriores, visto que esta “máquina virtual” disponibiliza recursos lógicos, bem como as respectivas interfaces de programação e gestão.

Concluindo pode dizer-se que o Sistema Operativo é um conjunto de programas que permitem a gestão dos recursos, disponibilizando ao mesmo tempo uma interface que facilita a utilização do hardware.


8. Protecção e Fiabilidade

O Sistema Operativo permite controlar o acesso pelos programas e processos aos recursos do sistema, autorizando ou não o acesso, assim como, o tipo de permissões atribuídas.

Exemplos: ‰ Sistema de ficheiros ‰ Acesso a dispositivos de I/O ‰ Restrição do aceso a áreas de memória de outros processos ‰ Detecção de erros (evitando a propagação do erro aos restantes processo em execução).

A segurança de um computador é um ponto fundamental para o bom funcionamento de um sistema informático. Existem, basicamente, dois aspectos que devem ser considerados quando se planeia a segurança de um sistema operativo:

A segurança dos computadores e dos dados neles armazenados
Exemplos: 
A eliminação ou alteração por falha técnica, acção humana ou desastres naturais de um ou mais ficheiros fundamentais ao sistema operativo podem ser suficientes para o computador bloquear. - 
A alteração ou intercepção do conteúdo de ficheiros de trabalho contendo conteúdo crítico da organização.

A segurança da rede de comunicações e dos dados durante a transmissão 
Exemplos: 
Entrada no sistema da organização por pessoas exteriores, podendo apagar, alterar ou consultar dados, mensagens ou programas críticos para a organização. 
Entrada de programas via rede que poderão provocar funcionamento deficiente no sistema, como é o caso dos vírus.

Dentro de diversos requisitos de segurança que devem ser tidos em conta, os seguintes:

Secretismo – a informação só deve estar acessível a quem tenha autorização para a mesma.

Integridade – os dados e o estado do sistema não devem poder ser alterados por acidente ou comportamento incorrecto.

Disponibilidade – os recursos só devem ser utilizados por aqueles a quem se destinam.

Por muito avançado que um sistema seja a nível de segurança, tem-se constatado que até os sistemas considerados mais seguros têm sido alvos de intrusão. Como tal, a segurança não pode ser encarada como um sistema estático, isto é, mesmo que tecnicamente e administrativamente pareça que o sistema seja seguro, deve ser complementado por métodos de verificação dinâmicos na pesquisa de eventuais falhas. Devem ser adicionadas técnicas complementares de segurança, tais como firewalls (nem todos os sistemas operativos incluem esta funcionalidade), antivírus (esta situação vai ser focada na próxima subunidade) ou outras do género.


9. Noção de “Job Control”

Quanto à função de Gestão do Processador o SO

Informa sobre os processadores e seus estados (Traffic Controller). 
Aloca processadores quando necessário (Dispatcher).
Decide qual conjunto de tarefas (Job), usará o processador (Job Scheduler). 
Decide que processo usará o processador, quando e quanto. 
Recupera o controle do processador quando um processo termina, excede sua fatia de tempo, abandona uma tarefa, ou quando ocorre um erro.


Síntese


10. Tipos de Sistemas Operativos

Os tipos de SO e a sua evolução estão intimamente relacionados com a evolução do hardware e das aplicações por eles suportadas. A diversidade dos sistemas informáticos obrigou ao desenvolvimento de diferentes tipos de SO, ao longo da história dos computadores.

Mainframe Operating System

•Desenvolvido para computadores de grande porte existentes em grandes empresas. Capacidade para lidar com muitas transações de dados e de inúmeras tarefas;
•Acesso remoto de milhares de utilizadores;
•Desempenho de múltiplas operações de E/S;
•Utilizados em companhias aéreas, bancos, seguradoras, etc.;
•Exemplo: IBM OS/390.

Oferecem normalmente três tipos de serviços:

•em lote (batch): um sistema em lote processa processos de rotina sem a presença interativa do utilizador.
•processamento de transações: administram grandes quantidades de pequenas chamadas ao sistema. Ex.: processamento de verificações em um banco.
•tempo compartilhado: Permite que múltiplos utilizadores remotos executem seus processos simultaneamente no computador, como na realização de consultas a um grande banco de dados.

 

Server Operating System

•Correm em servidores que podem ser máquinas com grandes capacidades;
•Servem múltiplos utilizadores através da rede e permitem a partilha de hardware ou recursos de software;
•Podem fornecer serviços de impressão, de ficheiros ou web;
•Exemplos: Unix, Windows NT/2000, Windows 2003 Server, Linux (Ubuntu Server).

 

Multiprocessor Operating System

•Capacidade de permitirem a ligação entre diversas UCP (processadores) de um sistema;
•Dependendo de como elas estiverem conectadas e o que é compartilhado, esses sistemas são denominados:
•computadores paralelos
•multicomputadores
•Multiprocessadores
•Precisam de sistemas operacionais especiais, muitas vezes derivação de sistemas operacionais de servidores com aspetos especiais de comunicação e conectividade.
•Neste grupo de SO incluem-se também os SO distribuídos.
•Exemplos: Unix, Windows NT/2000, Linux.

 

Personal Computer Operating System

•Oferecem um conjunto de serviços a um único utilizador e (em geral) uma interface gráfica amigável;
•Exemplos: Windows 7, Linux, MAC-OS.

 

Real Time Operating System (RTOS)

• Utilizados para controlo de processos nos quais o tempo é o fator mais importante, por exemplo, o controlo de uma linha de montagem;
• São sistemas onde o tempo é fator fundamental. Ex.: um carro num processo de fabricação. Caso o robô de soldagem seja ativado antes ou depois do tempo previsto o carro estará perdido.
• Se ações precisam ocorrer em determinados instante (ou em determinado intervalo de tempo) então tem-se um sistema de tempo real.
•Exemplos: VxWorks, QNX.

 

Embedded Operating System

• Controlo de pequenos dispositivos (PDAs, telemóveis);
•Controlo de eletrodomésticos;
•Apresentam restrições de tamanho, memória e de consumo de energia que os fazem especiais.
•Exemplos: PalmOS, Windows CE.

 

Smart Card Operating System

•São os SO mais pequenos e são executados em cartões inteligentes – dispositivos do tamanho de um cartão de crédito que contém um chip de UCP.
•Possuem restrições severas de consumo de energia e de memória.
•Alguns deles podem realizar apenas uma única função, como pagamentos eletrônicos ou identificação de um titular.

•Outros podem tratar múltiplas funções no mesmo cartão inteligente.


11. O conceito Multitarefa

Os Sistema Monotarefa permitem que apenas um programa (tarefa) seja executado de cada vez (monoprogramável). Os sistemas monoprogramáveis ou monotarefa caracterizam-se por permitir que o processador, a memória, e os periféricos fiquem dedicados a um único utilizador (monoutilizador). Nesses sistemas, enquanto o programa aguarda por um evento, como a digitação de um dado, o processador fica ocioso sem realizar qualquer tarefa. A memória é subutilizada caso o programa não a preencha totalmente. O tempo de utilização da CPU é de aproximadamente 30%.

Nos sistemas multiprogramáveis o tempo de utilização da CPU sobe para até 90%. A memória principal é utilizada de forma mais eficiente, pois existem vários programas residentes revezando-se na utilização do processador.

Os Sistemas de Multitarefa permitem ao utilizador a execução de várias tarefas ao mesmo tempo. Estes sistemas também podem ser Sistemas Multiprogramaveis ou seja permitem que vários programas possam utilizar o mesmo recurso.

Nos sistemas multitarefa a memória principal é dividia em partes para cada programa em execução.

https://prezi.com/tmxzzxvlk_fn/conceito-de-multitarefa/#

Existem dois tipos de sistemas operativos Multitarefa: os de Antecipação que se esforçam por conseguir uma "democratização" dentro do processador e os de Cooperação em que o programa instrui o núcleo a fazer o “task switching” em certos pontos do código, e o núcleo apenas passa ao processo seguinte quando o programa o permite.