Processo em Sistema Operativo
Sistema operativo
• é um programa ou um conjunto de
programas cuja função é gerenciar
os recursos do sistema (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
Sistema Operativo
• Embora possa ser executado imediatamente após a máquina
ser ligada, a maioria dos computadores pessoais de hoje o
executa através de outro programa armazenado em uma
memória não-volátil ROM chamado BIOS num processo
chamado "bootstrapping",.
• "bootstrapping", conceito em inglês usado para designar
processos autossustentáveis, ou seja, capazes de
prosseguirem sem ajuda externa
Inicialização de Sistema
• Após executar testes e iniciar os componentes da máquina
(monitores, discos, etc),
• o BIOS procura pelo sistema operacional em alguma unidade
de armazenamento, geralmente o Disco Rígido, e a partir daí, o
sistema operacional "toma" o controle da máquina.
Sistema operativo
• existem dois modos distintos de conceituar um sistema
operacional:
• numa visão de cima para baixo (top-down): é uma abstração
do hardware, fazendo o papel de intermediário entre os
programas (software) e os componentes físicos do computador
(hardware);
• numa visão de baixo para cima (bottom-up): é um gerenciador
de recursos, i.e., que controla as aplicações (processos) a
executar, como, quando e com quais recursos (memória, disco,
periféricos)
Função do Sistema Operativo
• Um sistema operacional possui as seguintes funções:
1.gerenciamento de processos;
2.gerenciamento de memória
3.gerenciamento de recursos;
4.entrada e saída de dados;
5.sistema de arquivos.
Gerenciamento de processos
• O sistema operacional multitarefa é preparado para dar ao
usuário a ilusão que o número de processos em execução
simultânea no computador é maior que o número de
processadores instalados. Cada processo recebe uma fatia do
tempo e a alternância entre vários processos é tão rápida que o
usuário pensa que sua execução é simultânea.
• São utilizados algoritmos de escalonamento para determinar
qual processo será executado em determinado momento e por
quanto tempo.
Interface de uso
• Os sistemas operacionais fornecem abstração de hardware para que seus
recursos possam ser usados de maneira correta e padronizada, mas para
ser possível operar um computador, é necessário fornecer também uma
interface para que o usuário possa desfrutar dos recursos do sistema.
• As principais interfaces de uso são as seguintes:
- Interface de terminal
- Interface textual
- Interface gráfica
- Interface de voz
Interface de terminal
• A interface de terminal, também chamada de interface
de linha de comando ou "CLI" (Command Line
Interface) funciona exclusivamente com o teclado.
• Os comandos são digitados a partir de um prompt e
são interpretados por um interpretador de
comandos, conhecidos também por shells.
Interface textual
• A interface textual também é baseada em texto,
porém também tem à disposição um ambiente de
trabalho composto por menus, janelas e botões.
Esse tipo de interface tinha um uso difundido em
aplicações baseadas no MS-DOS
Interface gráfica
• GUI (Graphic User Interface) além de menus, janelas e
botões também existem figuras, tanto vetoriais quanto
fotografias. O usuário interage com esse tipo
de interface usando o mouse, podendo também usar o
teclado e teclas de atalho, ou então usando toques e
gestos em touchscreens.
Interface de voz
• Interfaces de voz, ou VUI (Voice User Interface), são aquelas
em que o usuário interage com o sistema por meio de
comandos sonoros. Sendo de desenvolvimento relativamente
recente, tem sua aplicação em dispositivos adaptados
para cegos e recentemente têm aparecido também para uso
geral em smartphones, tablets e desktops.
O que é um processo em um sistema operacional?
• Um processo pode ser considerado como um programa em execução,
também um conjunto de informações necessárias para a
concorrência de programas no sistema operacional.
• Além disso, também pode ser entendido como o ambiente onde um
programa é executado.
• um programa em execução juntamente com toda informação do seu
estado (memória, registradores, contador de programa, status de E/S,
etc
Multitarefa
• Quando um sistema operacional permite a execução de mais
de um programa ao mesmo tempo, ele é chamado de
multitarefa e tem de lidar com procedimentos que concorrem
quanto à utilização da capacidade de processamento
do hardware
• Multitarefa é um método que permite vários processos
compartilharem processadores (UCPs) e outros recursos. Cada UCP
(núcleo) executa uma única tarefa por vez. Entretanto, a computação
multitarefa permite que cada processador comute entre tarefas que
estão sendo executadas sem ter que esperar que cada tarefa finalize
Comunicação entre processos
• A comunicação entre processos é o grupo de mecanismos que
permite aos processos transferirem informação entre si. A capacidade
de um sistema operacional executar simultaneamente dois ou mais
processos é chamada multiprocessamento.
Tipos de Processo
• Os processos, podemos destacar dois principais tipos
que estão relacionados a seu local de execução, no
caso CPU e Entrada e Saída de dados.
• Processos CPU bound (orientados à CPU): são
processos que utilizam muito o processador, em que o
tempo de execução é definido pelos ciclos de
processador.
• Processos I/O bound (orientados à E/S): são
processos que realizam muitas operações de entrada e
saída de dados, em que o tempo de execução é
definido pela duração destas.
• Quando ocorre uma troca de um processo por outro temos a
chamada mudança de contexto, e cada processo possui três partes:
1. Contexto de hardware
2. Contexto de software
3. Espaço de endereçamento
Contexto de hardware
• Essa parte do processo é a que armazena o conteúdo dos
registradores gerais da CPU e dos registradores específicos.
• O contexto de hardware de um processo em execução fica
armazenado nos registradores do processador.
Contexto de software
• Aqui temos as especificidades dos recursos disponíveis para serem
alocados em um processo, como limite de arquivos abertos ao
mesmo tempo, tamanho do buffer para operações de E/S e prioridade
de execução de processos.
Contexto de software
• O contexto possui três tipos de informação sobre o processo:
1. Identificação,
2. Quotas
3. Privilégios.
Identificação
• Cada processo do sistema operacional
possui um número identificador, chamado
de PID (process identification),
juntamente com a identificação do
usuário que o criou, o UID (user
identificação).
Quotas
• Aqui temos a informação dos limites de recurso que o processo pode
alocar.
Privilégios
• Os privilégios definem quais ações um processo pode tomar com
relação a ele mesmo, a outros processo e ao sistema operacional.
Pense, por exemplo, num processo iniciado pelo root no linux, que
tem privilégios de administrador.
Espaço de endereçamento
• Esta parte do processo refere-se a àrea da memória que pertence ao
processo, que ele possui para armazenar instruções e dados para sua
execução.
Estados de um processo
• Um processo pode ter basicamente três estados: em
execução, pronto ou em espera.
Execução (running)
• Dizemos que um processo está em execução
quando ele está sendo processado pela CPU.
Pronto (ready)
• Estar em estado de pronto significa que o processo aguarda para ser
executado. A ordem de execução dos processos em estado de pronto é
determinada pelo mecanismo de escalonamento.
Espera (wait)
• O processo encontra-se em estado de espera quando aguarda por
algum evento externo ou algum recurso para prosseguir sua execução
Thank You