Você está na página 1de 8

1.

FUNDAMENTOS
OPERACIONAIS

Processamento Multitarefa: Um computador pode processar diferentes tarefas


simultaneamente através de técnicas de multitarefa, que podem ser implementadas tanto por
hardware quanto por software. Por exemplo, sistemas operacionais modernos utilizam o conceito
de tempo compartilhado, onde cada tarefa recebe uma fatia de tempo para executar no
processador. Isso dá a ilusão de que múltiplos programas estão sendo executados ao mesmo
tempo.

Isolamento de Recursos: Os sistemas operacionais gerenciam os recursos do computador,


como CPU, memória e dispositivos de entrada/saída, de forma a garantir que cada programa tenha
acesso aos recursos necessários sem interferir uns nos outros. Mecanismos como controle de
acesso, gerenciamento de memória virtual e filas de processos são utilizados para evitar conflitos e
garantir a correta execução dos programas.

Acesso a Computadores Remotos: Os usuários podem acessar computadores remotos de


forma segura através de protocolos de comunicação seguros, como SSH (Secure Shell) ou VPN
(Virtual Private Network). Esses protocolos criptografam os dados transmitidos pela rede,
garantindo a confidencialidade e integridade das informações, e autenticam os usuários para evitar
acessos não autorizados.

Troca de Dados entre Sistemas: Para trocar dados entre sistemas de forma segura e sem
conflitos por falta de compatibilidade, é importante utilizar padrões de comunicação bem
definidos e protocolos de rede robustos. Formatos de dados universais, como JSON (JavaScript
Object Notation) ou XML (Extensible Markup Language), podem ser utilizados para garantir a
interoperabilidade entre diferentes sistemas. Além disso, é fundamental realizar testes e validações
para garantir que os dados sejam interpretados corretamente pelos sistemas de destino. O uso de
tecnologias como APIs (Application Programming Interfaces) também facilita a integração entre
sistemas, permitindo que eles compartilhem dados e funcionalidades de forma controlada e segura.

Hardware X Software
 Durante o processo de transformação do produto bruto até a saída e entrega do
produto final existem componentes físicos e lógicos trabalhando
nesta produção.
 Os componentes físicos no nosso mundo computacional são conhecidos
como hardware e a parte lógica, como software.
Hardware
O hardware de um computador pode incluir : o computador em si, os discos e as unidades de
disco, impressora e etc.
Software
O software corresponde a qualquer programa ou grupo de programas que instrui o hardware
sobre a maneira como ele deve executar uma tarefa, inclusive sistemas operacionais,
processadores de texto e programas de aplicação.

Sistema Operacional
O sistema operacional é a parte lógica que controla todo hardware, ou seja,mesmo que estejamos
usando um programa de computador com propósito de navegação na internet, de envio e
recebimento de e-mails, editores de texto e imagem ou qualquer outra aplicação (software), na
realidade estes estão se comunicando com o sistema operacional e cabe ao sistema operacional
executar as tarefas necessárias para uso dos componentes físicos do computador, como memória,
disco, controladores de vídeo, rede etc.

Abstração = permite lidar com a complexidade de sistemas de forma mais gerenciável,


simplificando sua compreensão e uso.
Cada componente físico de um computador possui características intrínsecas para atender ao seu
propósito. Os sistemas operacionais típicos interagem servindo de conexão entre o hardware e os
aplicativos. Neste modelo, o desenvolvedor manda a impressão para uma entidade lógica que
representa uma impressora e cabe ao sistema operacional encaminhar para a impressora física os
dados a serem impressos.
Gerência
Os programas, por meio do sistema operacional, usam o hardware para atingir seus objetivos:
gravar, apagar, acessar e armazenar dados, imprimir,documentos, navegar na internet, tocar música
etc.
Quando dois ou mais aplicativos precisam concorrentemente e simultaneamente acessar recursos
de hardware, então podem surgir conflitos. Cabe ao sistema operacional baseado nas políticas de
sua estrutura gerenciar o uso dos recursos de hardware e administrar disputas e conflitos.

OBS: O inglês Charles Babbage projetou o primeiro computador de uso geral.


1.Primeira geração de computadores (1945-1955) – Válvulas
 Válvulas a vácuo.
 Grandes.
 Lentos.
 Cada computador era programado para uma tarefa específica e tinha uma
 linguagem binária diferente (código máquina).
 Utilizavam tambores magnéticos para armazenamento de dados.
2.Segunda geração de computadores (1955-1965) – Transistores e sistemas em lote
(batch)
 Transistores.
 1/200 do tamanho das válvulas.
 Consumo de menos de 1/100 da energia de uma válvula.
 Redução do tamanho das máquinas.
 Processamento ainda era lento, mas já na ordem de milissegundos.

3.Terceira geração de computadores (1965-1980) – CIs e multiprogramação


 Introdução dos circuitos integrados.
 Grande contribuição no processo de miniaturização.
 Início da produção de minicomputadores.
 Sistema Operacional (orientado à arquitetura).
 Tempo compartilhado.
 Programação em assembly.
 Criação dos primeiros softwares.

4.Quarta geração de computadores (1980 - atualmente) – Computadores pessoais


 Introdução dos microprocessadores.
 Desenvolvimento dos computadores.
 Pessoais (Personal Computer ou PC).
 Esta geração foi marcada pelo surgimento dos processadores, os sistemas
 operacionais como o MS-DOS, UNIX e Macintosh, linguagens de programação
 orientadas a objetos como o C++ e o smalltalk.
 Impressoras matriciais, e os teclados com os layouts atuais também foram criados
 nesta época.

Tipos de Sistemas Operacionais:


Batch (de lote): todos os programas a serem executados eram colocados numa fila. O
processador recebia um programa após o outro, para ser processado em sequência, o que
permitia um alto grau de utilização do sistema. Atualmente, o termo “em lote” é usado para
designar um conjunto de comandos que deve ser executado em sequência.
De Rede: e devem suportar operações em rede, ou seja, a capacidade de oferecer às
aplicações locais recursos que estejam localizados em outros computadores da rede LAN
(Local Area Network) ou WAN (Wide Area Network), como serviços de autenticação remota,
acesso a arquivos, acesso a banco de dados, impressoras etc .A maioria dos sistemas
operacionais atuais está alinhada com esta classificação.
Distribuído: os recursos utilizados por cada usuário em cada máquina estão disponíveis de
forma transparente aos usuários. Ao acessar uma aplicação, o usuário interage com sua
interface, entretanto, não sabe onde está executando ou armazenando seus arquivos, sendo esta
decisão de total responsabilidade do sistema e totalmente transparente para o usuário do
mesmo.

Multiusuário e multitarefas: Chamamos de processo um programa que está em execução.


Um programa em execução requer recursos, principalmente da CPU, e concorre com outros
processos para ser realizado. Portanto, cabe ao sistema operacional, quando multiusuário e
multitarefas, gerenciar os recursos disponíveis a todos os processos. Um sistema operacional
multiusuário deve suportar a autenticação e a autorização de cada usuário quando necessário o
uso de algum recurso contido no sistema(arquivos, processos, conexões de rede) e garantir
regras para o controle de acesso, objetivando impedir o uso desses recursos por usuários não
autorizados. Grande parte dos sistemas operacionais atuais é multiusuário.

Servidor: O sistema operacional classificado como servidor possibilita a gestão eficiente de


grandes quantidades de recursos físicos como: disco, memória e processadores, gerindo as
prioridades e limites sobre o uso dos recursos. Tipicamente, um sistema operacional servidor
também tem suporte à rede e multiusuários. Alguns exemplos de sistemas servidores são:
Solaris, AIX, Linux e Windows Server 2008.

Embarcados: Um sistema operacional embarcado, também conhecido como sistema


operacional embutido, é projetado para funcionar em hardware com recursos limitados de
processamento e armazenamento, como TVs, reprodutores de MP3 e aparelhos de DVD. Sua
principal característica é garantir alta compatibilidade e segurança, dificultando a instalação de
software não confiável. Exemplos de sistemas operacionais embarcados incluem o QNX e o
VxWorks, ambos otimizados para desempenho e confiabilidade em dispositivos com recursos
limitados.

Tempo Real: Esse sistema operacional é caracterizado por ter o tempo comoparâmetro
principal. Outras duas subdivisões são: sistemas de tempo real críticos, voltados tipicamente
ao controle de processos industriais e militares, e os sistemas de tempo real não críticos, como
os aplicados em sistemas de áudio digital ou multimídia. A grande diferença entre essas duas
subcategorias é que, no caso de sistemas que dependem do tempo real crítico, eles não
podem ter degradação de desempenho (como é o caso dos sistemas que controlam a linha de
produção de veículos), já o não crítico, apesar de não desejado, se houver um pequeno atraso,
não irá gerar tantos danos.
De computadores de grande porte: Sistema de grande porte é tipicamente utilizado por
grandes corporações e, como características predominantes desses sistemas.

Multiprocessadores: O sistema operacional desta categoria pode tratar múltiplas CPUs


simultaneamente. Equipamentos com multiprocessadores ou multinúcleos têm como objetivo
principal melhorar a capacidade computacional dos equipamentos, trazendo melhor
desempenho para o ambiente. Com o advento dos processadores multinúcleo, até sistemas
operacionais voltados para computadores pessoais estão começando a lidar com
multiprocessadores.Alguns exemplos de sistemas operacionais multiprocessados são:
Windows,Linux,Solaris e AIX.

Portáteis: Voltados para computadores como os PDA (Personal Digital Assistant) e telefones
celulares.

Os processadores: também conhecidos como CPUs (Unidades de Processamento Central),


são componentes fundamentais de um sistema de computador responsáveis por executar
instruções e processar dados. Eles são compostos por uma série de circuitos eletrônicos que
executam operações lógicas e aritméticas. Os processadores modernos são altamente
complexos e são fabricados usando tecnologias avançadas de semicondutores, como a
litografia de silício. Eles podem ter várias unidades de execução, caches de memória
integrados e suporte para instruções paralelas, o que os torna capazes de lidar com uma
ampla gama de tarefas computacionais. Além disso, os processadores são projetados para
operar em diferentes arquiteturas, como x86, ARM e RISC-V, cada uma com suas próprias
características e conjuntos de instruções. Os avanços na tecnologia de processadores têm
permitido o desenvolvimento de computadores mais rápidos, eficientes e poderosos ao longo
do tempo.

Processadores multithread e multinúcleo : Processadores multithread e multinúcleo


são tecnologias que aumentam a capacidade de processamento de um sistema

computacional. Multithreading permite que um processador execute várias sequências de


instruções simultaneamente, dividindo o trabalho em threads independentes. Pode ser do
tipo SMT, onde um núcleo físico executa múltiplos threads, ou CMT, onde múltiplos núcleos
compartilham recursos para executar threads independentes. Multinúcleo envolve ter dois ou
mais núcleos de processamento independentes em um único chip. Cada núcleo é capaz de
executar instruções independentemente dos outros núcleos.Ambas as tecnologias melhoram
o desempenho do sistema ao permitir a execução paralela de múltiplas tarefas. Isso resulta em
uma resposta mais rápida do sistema e uma melhor utilização dos recursos de processamento
disponíveis.
A CPU multithreading oferece a vantagem de reduzir o tempo de chaveamento entre
processos para cerca de um nanossegundo, mas quando um processo demanda muitos
ciclos de relógio para ler uma palavra da memória, o paralelismo não é alcançado e apenas
um processo é executado por vez. No entanto, o sistema operacional interpreta o
multithreading como uma CPU, o que pode causar complexidade na gestão do sistema. Por
outro lado, a CPU com multinúcleo físico oferece múltiplos chips dentro de um único chip,
simulando várias CPUs, e requer um sistema operacional específico para
multiprocessadores.

Memória: Na teoria, a memória deveria ser mais performática do que a execução de uma
instrução processada por uma CPU, pois, com isso, a CPU jamais teria que esperar pela resposta da
memória; entretanto, na prática isso não é uma verdade. Para tentar resolver este problema, a
abordagem contemporânea é construir o sistema de memória seguindo uma hierarquia de
camadas.

 O registradores são
feitos do mesmo
material que as CPUs e são tão rápidos quanto elas.
 A memória cache usada para armazenar informações frequentemente mais utilizadas,
porém memória cache é muito cara.
 A memória ROM é normalmente usada pelos fabricantes para gravar códigos
controladores do hardware e são previamente programadas em fábrica.
 A memória CMOS é tipicamente usada para manter data e hora atualizadas e parâmetros de
configuração do hardware.
 A memória RAM é possível identificar a memória principal, todas as solicitações vindas da
CPU e que não estão na memória cache são encaminhadas para a memória principal.

Disco: O disco do computador, seja um disco rígido (HD) ou uma unidade de estado sólido
(SSD), é um componente vital para armazenar dados permanentemente. Enquanto os discos
rígidos usam discos magnéticos rotativos e cabeças de leitura/gravação, os SSDs empregam
memória flash, oferecendo maior velocidade e durabilidade. Ambos são amplamente usados
para armazenar sistemas operacionais, aplicativos e arquivos pessoais, sendo essenciais para o
funcionamento dos computadores e dispositivos eletrônicos.
Dispositivos de E/S: Sua função principal é facilitar a entrada de dados no sistema (por
exemplo, teclado e mouse) e a saída de dados do sistema (por exemplo, monitor e
impressora). Os dispositivos de E/S são conectados ao computador através de interfaces
específicas, como portas USB, HDMI, Ethernet, entre outras. O sistema operacional gerencia a
comunicação entre o processador e esses dispositivos, garantindo que os dados sejam
transmitidos de maneira eficiente e confiável.
Os avanços tecnológicos têm levado ao desenvolvimento de dispositivos de E/S mais rápidos,
eficientes e versáteis, proporcionando uma experiência de computação mais fluida e produtiva
para os usuários. Os dispositivos de E/S desempenham um papel fundamental na interação
entre o computador e o usuário, bem como na troca de informações com o ambiente externo.
Barramento: O barramento é um componente crucial em sistemas computacionais,
servindo como uma via de comunicação que conecta diferentes partes do computador. Ele é
responsável por transmitir dados, endereços e sinais de controle entre o processador, a
memória, os dispositivos de entrada/saída e outros componentes do sistema.
Gerenciamento de Processos
O gerenciamento de processos é uma função essencial dos sistemas operacionais, atuando
como o cérebro por trás da execução eficiente de programas em um ambiente computacional.
Essa complexa disciplina abrange uma série de atividades críticas, desde o escalonamento de
processos para determinar a prioridade de execução na CPU até a alocação cuidadosa de
recursos como memória e dispositivos de E/S para garantir o desempenho otimizado do
sistema. Além disso, o gerenciamento de processos envolve a coordenação de atividades
concorrentes, o compartilhamento seguro de dados entre processos e a sincronização de
operações para evitar conflitos e garantir a integridade dos dados. Ao controlar o ciclo de vida
dos processos, desde sua criação até sua finalização, o sistema operacional assegura uma
utilização eficaz dos recursos disponíveis, permitindo a execução suave e coordenada de uma
ampla gama de aplicativos e serviços em um ambiente computacional complexo. Em suma, o
gerenciamento de processos desempenha um papel central na eficiência e na estabilidade dos
sistemas operacionais modernos, permitindo a execução eficiente e coordenada de múltiplos
processos simultaneamente.

Processo = constitui uma atividade,possuindo programa, entrada, saída e um estado.


A criação de processos é uma operação essencial nos sistemas operacionais, envolvendo a
alocação e configuração de recursos do sistema para iniciar novos programas. Esse processo é
geralmente dividido em várias etapas complexas. Inicialmente, o sistema operacional aloca
espaço de memória para o programa executável e seus dados. Isso pode envolver a criação de
uma tabela de processos para armazenar informações sobre o novo processo, como seu
estado, identificador único (PID), prioridade e contexto de execução. Em seguida, durante a
inicialização do processo, o sistema operacional configura o ambiente de execução do
programa. Isso pode incluir a inicialização de variáveis, a abertura de arquivos necessários, a
configuração de estruturas de dados, como o espaço de endereçamento virtual, e a
preparação de mecanismos de sincronização e comunicação, se necessário. Além disso,
durante a criação de processos, o sistema operacional pode estabelecer relações pai-filho
entre os processos. Isso permite a criação de hierarquias de processos, onde um processo pai
pode criar e controlar um ou mais processos filhos. Essa estrutura hierárquica facilita a
organização e a comunicação entre os processos, permitindo a coordenação de tarefas
complexas.

Comunicações entre processos: estruturada e sem interrupções acontecendo entre eles


condição de corrida execução de um program depende da ordem de execução das instruções entre múltiplos
Threads são unidades de execução leves dentro de um processo, permitindo que um
programa execute múltiplas tarefas de forma concorrente.

Os semáforos são úteis para evitar condições de corrida e garantir a exclusão mútua e
a sincronização entre threads que compartilham recursos críticos. No entanto, seu uso
requer atenção cuidadosa para evitar problemas como deadlocks e bloqueios.

Monitor: Monitor é um termo que pode se referir tanto ao dispositivo de saída visual usado
com computadores quanto ao processo de monitoramento contínuo e análise do desempenho
e integridade dos sistemas computacionais. O monitor de computador exibe informações
gráficas geradas pelo computador em uma tela plana de cristal líquido (LCD) ou tecnologia de
diodo emissor de luz (LED). Por outro lado, o monitoramento de sistemas envolve o
acompanhamento e a análise de métricas e dados operacionais, como uso de CPU, uso de
memória, tráfego de rede e status de serviços e aplicativos, para garantir o funcionamento
eficiente dos sistemas e identificar problemas antes que afetem os usuários finais ou as
operações do negócio.

Escalonamento = no sistema, e mais de um processo estiver competindo para se executado, então,


caberá ao sistema operacional escolher qual dos processos será privilegiado.

Gerenciamento de memória: é uma função vital e complexa dos sistemas operacionais, que visa
administrar de forma eficiente e segura o acesso e o uso dos recursos de memória por parte dos
processos em execução. Este processo abrange uma série de tarefas intricadas, visando otimizar o uso
da memória e garantir a estabilidade e o desempenho do sistema.Uma das principais tarefas do
gerenciamento de memória é a alocação dinâmica de memória para os processos, permitindo-lhes
acessar a quantidade necessária de memória para executar suas tarefas. Isso envolve dividir e alocar o
espaço de memória conforme as necessidades de cada processo, utilizando técnicas como
particionamento, paginação e segmentação, além de estratégias avançadas como memória virtual.
Outro aspecto crucial é a proteção da memória, garantindo que cada processo tenha acesso apenas à
sua própria área de memória e não possa corromper ou interferir na memória de outros processos.
Isso é essencial para garantir a estabilidade e a segurança do sistema. Além disso, o gerenciamento de
memória envolve a liberação eficiente de memória quando ela não é mais necessária, evitando
vazamentos de memória e garantindo que a memória seja reutilizada de forma eficaz por outros
processos.Técnicas avançadas, como swapping e paginação, são utilizadas para lidar com a escassez de
memória, transferindo dados entre a memória principal e o armazenamento secundário, como discos
rígidos, conforme necessário para garantir que os processos possam ser executados de forma
eficiente.

Abstração – espaços de endereçamento da memória


(Implantação do espaço de endereçamento, cria-se uma memória abstrata para abrigar os programas.)
A permuta de memória é uma técnica usada pelos sistemas operacionais quando a memória física está
quase cheia. Parte dos dados na RAM é temporariamente transferida para o disco rígido para liberar
espaço.
A memória virtual é uma técnica que permite que os programas usem mais memória do que está
fisicamente disponível, armazenando parte dos dados no disco rígido. Isso melhora o desempenho e
simplifica o desenvolvimento de programas, mas pode causar uma queda no desempenho se usado em
excesso.
Segmentação é uma técnica de gerenciamento de memória que divide a memória do sistema e os
processos em segmentos lógicos de diferentes tamanhos e finalidades. Cada segmento representa
uma área lógica de memória, como código, dados ou pilha. Isso permite uma alocação flexível de
memória para processos, facilitando o compartilhamento de dados e a execução de programas
grandes.
Paginação é uma técnica de gerenciamento de memória que divide a memória em blocos pequenos
chamados de páginas. As páginas são movidas entre a memória principal e o disco conforme
necessário, permitindo que os programas usem mais memória do que está fisicamente disponível. Isso
melhora o desempenho e simplifica o gerenciamento de memória.
Frames são blocos de tamanho fixo na memória física usados para armazenar páginas de
memória virtual. Eles são essenciais para o gerenciamento eficiente da memória, permitindo
que o sistema operacional controle o armazenamento e o acesso à memória física.
Introdução a Sistemas de Arquivos
ARQUIVOS Arquivos são unidades de dados em computadores, armazenados em pastas.
Eles contêm diferentes tipos de informações e podem ser criados, editados e excluídos pelos
usuários.
é diferenciado por um conjunto de atributos (fornecem informações adicionais sobre o objeto e
podem incluir detalhes como nome, tamanho, tipo, data de criação, permissões de acesso e
proprietário.)
A estrutura de um arquivo se refere à organização interna dos dados armazenados dentro dele.
Pode variar dependendo do tipo de arquivo e do formato em que os dados são armazenados.
Algumas estruturas comuns incluem texto simples, binário, estruturado e formato específico do
aplicativo. Cada tipo de arquivo tem sua própria estrutura única, projetada para atender às
necessidades específicas dos dados que ele armazena.

As travas oferecidas pelo sistema operacional podem ser obrigatórias ou


recomendadas
Travas recomendadas: não são impostas pelo núcleo do sistema operacional. , fica a cargo do
programador implantar em suas aplicações os controles de trava necessários para impedir acessos
conflitantes aos arquivos.
Trava exclusiva: também chamada trava de escrita, garante acesso exclusivo ao arquivo
Trava compartilhada (ou trava de leitura): impede outros processos de criar travas exclusivas
sobre o arquivo, mas permite a existência de outras travas compartilhadas.

Você também pode gostar