Para entender a complexidade do mundo da Segurança
da Informação, é importante compreender um elemento essencial e este
elemento é o sistema operacional que será discutido neste artigo.
O sistema operacional é uma coleção de programas que
Inicializa o hardware do computador;
Fornece rotinas básicas para controle de dispositivos;
Fornece agendamento, gerenciamento e interação de tarefas;
Manter a integridade do sistema;
Existem
muitos tipos de sistemas operacionais, cuja complexidade varia e
depende de que tipo de funções é fornecido, e que o computador está
sendo usado. Alguns
sistemas são responsáveis pela gestão de muitos usuários, outros
controlam dispositivos de hardware como bombas de petróleo.
Um
sistema operacional para uma segurança muito simples de controle do
sistema pode ser armazenado em uma memória ROM (Read Only - um chip que
mantém instruções para um computador), e assumir o controle quando
liguei o computador. Sua
primeira tarefa foi ajustar (e provavelmente testar) os sensores de
hardware e alarmes, e depois vire uma rotina monitorando todos os
sensores introduzidos continuamente. Se o estado de qualquer sensor de entrada é alterada, existe uma rotina de geração de alarme.
Em um computador multi-usuário grande, com muitos terminais, o sistema operacional é muito mais complexa. Tem que gerenciar e executar todas as aplicações para os usuários e garantir que eles não interfiram uns com os outros. Tem
que compartilhar todos os dispositivos que são de série na natureza
(dispositivos que só podem ser utilizados por um usuário por vez, como
impressoras e discos) entre todos os usuários que pedem esse tipo de
serviço. O SO poderia ser armazenado em disco, e partes dele são carregados na memória do computador (RAM) quando necessário.
Utilidades são fornecidos para
Arquivos de Administração e documentos criados por usuários;
Programa de Desenvolvimento;
Comunicação entre os usuários e outros computadores;
Gerenciamento de solicitações de usuários para programas, espaço de armazenamento e prioridade;
Além
disso, o SO precisaria apresentar a cada usuário uma interface que
aceita, interpreta, e então executa comandos ou programas do usuário. Essa
interface é comumente chamada de SHELL (= cápsula, manter o nome
original em Inglês) ou interpretador de comandos de linha (CLI). Em
alguns sistemas ela poderia ser uma simples linha de texto usando
palavras-chave (como MSDOS ou UNIX), outros sistemas podem ser gráfica
usando janelas e um dispositivo apontador como um mouse (como Windows95
ou X - Windows).
As várias partes de um sistema operacional
Um sistema operacional de um computador que é usado por muitas pessoas ao mesmo tempo, é um sistema complexo. Contém milhões de linhas de instruções escritas por programadores. Para
tornar mais fácil a sistemas operativos para ser escrito, eles são
construídos como uma série de módulos, cada módulo é responsável por uma
função.
Módulos típicos em um multi-usuário grande geralmente são SO
Núcleo (Kernel em Inglês - também conhecido como "executivo")
Process Manager
Scheduler (Scheduler, em Inglês)
Gerenciador de arquivos
O Center - Um Executivo em Tempo Real
O núcleo de um sistema operacional é às vezes chamado de EXECUTIVO em tempo real.
Algumas das funções ele executa são
Alternar entre os programas
Controle e programação de dispositivo de hardware
Gerenciamento de memória
Gestão de Processos
Agendamento de tarefas
Comunicação entre processos
Processamento de excepções e de interrupção
Nosso
sistema simples de monitoramento de segurança não teria todas as
funções acima, já que provavelmente seria um sistema single-tarefa,
executando apenas um programa. Como
tal, há necessidade de processar o intercâmbio entre mais de um
programa ou entre programas de permitir a comunicação (IPC). A
gestão da memória seria desnecessária, já que residem permanentemente
no programa ROM ou EPROM (uma forma particularmente ROM programável).
Um
sistema operativo concebido para lidar com um grande número de
utilizadores precisa de um núcleo para executar todas as funções acima. Programas de usuários geralmente são armazenados em disco, por isso precisa ser carregado na memória antes de ser executado. Isto
apresenta a necessidade de gerenciamento de memória, uma vez que a
memória do computador precisava ser pesquisada para encontrar uma área
livre para carregar um programa de usuário nele. Quando
o usuário tivesse encerrada a execução do programa, a memória consumida
por ele precisa ser liberado e se tornar disponível para outro usuário
quando solicitado.
Gestão
e Programação (Scheduling) de processos também são necessários para que
todos os programas podem ser executados de forma justa. Existe
um programa de um usuário específico para executar uma área de
extensão, negando o funcionamento de qualquer outro programa, e fazer
todos os outros usuários de espera. Além
disso, alguns programas podem precisar ser realizadas com mais
freqüência do que outros, por exemplo, verificação de rede de
comunicações ou de impressão. Alguns
programas podem precisar de ser suspenso temporariamente e, então, ser
reiniciado, introduzindo assim a necessidade de inter-programa de
comunicação.
Programar um computador
Um programa é uma sequência de instruções para o computador. Quando
o desenvolvedor de software (uma pessoa que escreve programas para
rodar em um computador) está desenvolvendo um programa, ele é convertido
em uma longa lista de instruções que são executadas pelo sistema de
computador.
Em sistemas operacionais nós falamos mais um processo do que um programa. Nos sistemas operacionais modernos, apenas uma parte de um programa é carregado a cada momento. O resto do programa espera que uma unidade até que você precisar. Isso economiza espaço na memória.
Os programas de computador são executados por processadores. Um chip é um processador que executa as instruções do programa de computador. Processadores de executar milhões de instruções por segundo.
Um Processo
Um processo ou tarefa é uma porção de um programa em alguma fase de implementação. Um
programa pode ser constituída por várias tarefas, cada um com a sua
própria unidade de operação ou um (talvez periodicamente comunicar uns
com os outros).
O Fio (linha linha)
Um segmento é uma parte separada de um processo. Um processo pode ser constituída por vários segmentos cada um dos quais sendo executadas separadamente. Por
exemplo, uma thread poderia tratar refresh da tela e gráficos,
impressão trataria outro segmento, outra thread trataria o mouse eo
teclado. Isso dá bom tempo de resposta a programas complexos. Windows NT é um exemplo de um sistema operativo que suporta fio multi-.
Sistemas operacionais multi-processo
Alguns sistemas de executar apenas uma única processo, outros sistemas executar vários processos de cada vez. A maioria dos computadores baseia-se num único processador, um processador pode executar apenas uma instrução de cada vez. Assim, como pode um único processador para executar processos múltiplos? A resposta mais imediata é que ele faz isso. O
processador do computador executa um processo por um curto período de
tempo, e, em seguida, desloca-se para o processo seguinte, e assim por
diante. À
medida que o processador executa milhões de instruções por segundo,
isto dá a impressão de que muitos processos são executadas
simultaneamente.
Em
um sistema informático que suporta mais de um processo de cada vez,
algum mecanismo deve ser usado para mesclar de uma tarefa para outra. Existem dois principais métodos utilizados para fazer essa troca:
*
Agendamento Cooperação indica que uma tarefa que está sendo executado
em algum momento abandonarem voluntariamente o processador e permitir
que outros processos a correr.
*
Programação de Preferência significa que uma tarefa actual é
interrompida (forçado para render) eo processador é dedicado a um outro
processo em modo de espera.
O
problema da mudança para a cooperação é um processo que poderia demorar
e assim negar a execução de outros processos e poderia resultar em
nenhum trabalho que está sendo feito. Um exemplo de um sistema de cooperação é o Windows 3.1 (Deus nos livre!).
A programação preventiva é melhor. Dá
mais respostas a todos os processos e ajuda a evitar (ou reduzir o
número de ocorrências) contra o medo de máquinas bloqueados. Windows NT e Windows posteriormente, 2000/2003 é um exemplo de sistema operacional, tais.
Nota: Somente para os programas de 32 bits no Windows 95/98 para a pré-programação preventiva. Programas
de 16 bits ainda são escalonados cooperativamente, o que significa que é
fácil para um programa para pegar um 16-bit computador Windows.
Alternância de contexto
Quando
o processador muda de um processo para outro, o seu estado (os
registradores do processador e dados associados) devem ser salvos, por
um tempo reinicia o processo e continuar como se nunca tivesse sido
interrompida. Uma vez que este estado tenha sido salvo, o processo de espera seguinte é ativado. Trata-se
de carregar os registradores do processador e memória, com todos os
dados salvos anteriormente, e reiniciar a instrução que seria executada
quando houve a última interrupção.
O ato de mudar de um processo para outro é chamado troca de contexto. Um período de tempo que um processo execute antes de ser mudado é chamado slice ou período de quantum de tempo.
Scheduling (Programação)
A
decisão sobre a qual o processo seguinte a ser executada é chamado de
escala (programação) e pode ser feito de uma variedade de maneiras.
Escalonadores
de cooperação são geralmente muito simples, uma vez que os processos
são organizados em fila circular (ROUND ROBIN). Quando um processo é deixado correr, ir para o fim da fila. O processo no topo da fila é então executado, e todos os processos de se mover para cima um lugar na fila. Isso fornece uma medida justa, mas não impede que um processo monopolize o sistema (não sair).
Escalonadores
de preferência usar um relógio de tempo real que gera interrupção a
intervalos regulares (digamos, a cada centésimo de segundo). Cada vez que uma interrupção ocorre, o processador muda para outra tarefa. Sistemas
tipicamente empregam a programação, tais atribuir prioridades a cada
processo, de modo que alguns podem ser realizados com mais freqüência do
que outros.
Carregar Sistema Operacional
O sistema operacional pode ser carregado na memória do computador de duas maneiras.
Já está presente na ROM.
Ele é carregado a partir do disco quando o computador está ligado.
Se
o SO já está presente em ROM (para sistemas como controladores
industriais, bombas de óleo, etc), ele ganhará controle imediato do
processador para ser conectado ao computador. Para
sistemas mais complexos, o SO é normalmente armazenado em mídia
secundária (como disco) e é carregado na memória RAM quando o computador
está ligado. A vantagem deste sistema é que o cronograma para o sistema operacional é mais fácil de fazer e definido.
O processo de inicialização
Descreve a acção da carga inicial do sistema operativo do disco para a memória RAM. Uma
pequena rotina armazenada em ROM, chamado bootstrap loader ou IPL
(Initial Program Loader), lê uma rotina especial de carga no disquete. Em baseada em disco do sistema, essa rotina normalmente reside na trilha 00, setor 00 (ou 01), e é chamado boot sector. O código contido no setor é transferido para a RAM, e depois executado. Ele tem a responsabilidade de carregar o resto do sistema operativo para a memória.
Diferentes tipos de processos em sistemas operativos
Os sistemas operacionais são divididos em categorias que definem as suas características. Os sistemas modernos podem utilizar combinações destas categorias descritas abaixo.
LOTE (em LOT)
O tipo mais antigo de SO permite que um programa para ser executado somente em um momento. O programa é carregado para o computador executa através. Os dados usados pelo programa não pode ser modificado enquanto o programa está sendo executado. Qualquer erro no programa ou dados significa começar tudo de novo.
INTERACTIVE
Estas mudanças permitem a entrada de dados e também durante a execução do programa. Os sistemas típicos são reservas aéreas de vôo e linguagens como BASIC.
TIME-SHARING/MULTI-USUÁRIO
Estas partes OSs computador a partir de mais de um usuário, e tem técnicas preventivas de agendamento.
MULTI-TAREFA
Mais de um processo podem ser executados simultaneamente. O processador é se espalhou rapidamente entre os processos. Um utilizador pode ter mais de uma execução do processo de cada vez.
TEMPO REAL
Principalmente usado em telecomunicações processo de controle, etc. O
sistema operativo controla as várias entradas que afectam a execução de
processos, alterando os modelos de computador do ambiente, e, assim,
que afecta as saídas, dentro de um período de tempo garantido
(tipicamente <segunda 1).
MULTI-PROCESSAMENTO
Um computador que tem mais de uma CPU processo de execução específica.
da Informação, é importante compreender um elemento essencial e este
elemento é o sistema operacional que será discutido neste artigo.
O sistema operacional é uma coleção de programas que
Inicializa o hardware do computador;
Fornece rotinas básicas para controle de dispositivos;
Fornece agendamento, gerenciamento e interação de tarefas;
Manter a integridade do sistema;
Existem
muitos tipos de sistemas operacionais, cuja complexidade varia e
depende de que tipo de funções é fornecido, e que o computador está
sendo usado. Alguns
sistemas são responsáveis pela gestão de muitos usuários, outros
controlam dispositivos de hardware como bombas de petróleo.
Um
sistema operacional para uma segurança muito simples de controle do
sistema pode ser armazenado em uma memória ROM (Read Only - um chip que
mantém instruções para um computador), e assumir o controle quando
liguei o computador. Sua
primeira tarefa foi ajustar (e provavelmente testar) os sensores de
hardware e alarmes, e depois vire uma rotina monitorando todos os
sensores introduzidos continuamente. Se o estado de qualquer sensor de entrada é alterada, existe uma rotina de geração de alarme.
Em um computador multi-usuário grande, com muitos terminais, o sistema operacional é muito mais complexa. Tem que gerenciar e executar todas as aplicações para os usuários e garantir que eles não interfiram uns com os outros. Tem
que compartilhar todos os dispositivos que são de série na natureza
(dispositivos que só podem ser utilizados por um usuário por vez, como
impressoras e discos) entre todos os usuários que pedem esse tipo de
serviço. O SO poderia ser armazenado em disco, e partes dele são carregados na memória do computador (RAM) quando necessário.
Utilidades são fornecidos para
Arquivos de Administração e documentos criados por usuários;
Programa de Desenvolvimento;
Comunicação entre os usuários e outros computadores;
Gerenciamento de solicitações de usuários para programas, espaço de armazenamento e prioridade;
Além
disso, o SO precisaria apresentar a cada usuário uma interface que
aceita, interpreta, e então executa comandos ou programas do usuário. Essa
interface é comumente chamada de SHELL (= cápsula, manter o nome
original em Inglês) ou interpretador de comandos de linha (CLI). Em
alguns sistemas ela poderia ser uma simples linha de texto usando
palavras-chave (como MSDOS ou UNIX), outros sistemas podem ser gráfica
usando janelas e um dispositivo apontador como um mouse (como Windows95
ou X - Windows).
As várias partes de um sistema operacional
Um sistema operacional de um computador que é usado por muitas pessoas ao mesmo tempo, é um sistema complexo. Contém milhões de linhas de instruções escritas por programadores. Para
tornar mais fácil a sistemas operativos para ser escrito, eles são
construídos como uma série de módulos, cada módulo é responsável por uma
função.
Módulos típicos em um multi-usuário grande geralmente são SO
Núcleo (Kernel em Inglês - também conhecido como "executivo")
Process Manager
Scheduler (Scheduler, em Inglês)
Gerenciador de arquivos
O Center - Um Executivo em Tempo Real
O núcleo de um sistema operacional é às vezes chamado de EXECUTIVO em tempo real.
Algumas das funções ele executa são
Alternar entre os programas
Controle e programação de dispositivo de hardware
Gerenciamento de memória
Gestão de Processos
Agendamento de tarefas
Comunicação entre processos
Processamento de excepções e de interrupção
Nosso
sistema simples de monitoramento de segurança não teria todas as
funções acima, já que provavelmente seria um sistema single-tarefa,
executando apenas um programa. Como
tal, há necessidade de processar o intercâmbio entre mais de um
programa ou entre programas de permitir a comunicação (IPC). A
gestão da memória seria desnecessária, já que residem permanentemente
no programa ROM ou EPROM (uma forma particularmente ROM programável).
Um
sistema operativo concebido para lidar com um grande número de
utilizadores precisa de um núcleo para executar todas as funções acima. Programas de usuários geralmente são armazenados em disco, por isso precisa ser carregado na memória antes de ser executado. Isto
apresenta a necessidade de gerenciamento de memória, uma vez que a
memória do computador precisava ser pesquisada para encontrar uma área
livre para carregar um programa de usuário nele. Quando
o usuário tivesse encerrada a execução do programa, a memória consumida
por ele precisa ser liberado e se tornar disponível para outro usuário
quando solicitado.
Gestão
e Programação (Scheduling) de processos também são necessários para que
todos os programas podem ser executados de forma justa. Existe
um programa de um usuário específico para executar uma área de
extensão, negando o funcionamento de qualquer outro programa, e fazer
todos os outros usuários de espera. Além
disso, alguns programas podem precisar ser realizadas com mais
freqüência do que outros, por exemplo, verificação de rede de
comunicações ou de impressão. Alguns
programas podem precisar de ser suspenso temporariamente e, então, ser
reiniciado, introduzindo assim a necessidade de inter-programa de
comunicação.
Programar um computador
Um programa é uma sequência de instruções para o computador. Quando
o desenvolvedor de software (uma pessoa que escreve programas para
rodar em um computador) está desenvolvendo um programa, ele é convertido
em uma longa lista de instruções que são executadas pelo sistema de
computador.
Em sistemas operacionais nós falamos mais um processo do que um programa. Nos sistemas operacionais modernos, apenas uma parte de um programa é carregado a cada momento. O resto do programa espera que uma unidade até que você precisar. Isso economiza espaço na memória.
Os programas de computador são executados por processadores. Um chip é um processador que executa as instruções do programa de computador. Processadores de executar milhões de instruções por segundo.
Um Processo
Um processo ou tarefa é uma porção de um programa em alguma fase de implementação. Um
programa pode ser constituída por várias tarefas, cada um com a sua
própria unidade de operação ou um (talvez periodicamente comunicar uns
com os outros).
O Fio (linha linha)
Um segmento é uma parte separada de um processo. Um processo pode ser constituída por vários segmentos cada um dos quais sendo executadas separadamente. Por
exemplo, uma thread poderia tratar refresh da tela e gráficos,
impressão trataria outro segmento, outra thread trataria o mouse eo
teclado. Isso dá bom tempo de resposta a programas complexos. Windows NT é um exemplo de um sistema operativo que suporta fio multi-.
Sistemas operacionais multi-processo
Alguns sistemas de executar apenas uma única processo, outros sistemas executar vários processos de cada vez. A maioria dos computadores baseia-se num único processador, um processador pode executar apenas uma instrução de cada vez. Assim, como pode um único processador para executar processos múltiplos? A resposta mais imediata é que ele faz isso. O
processador do computador executa um processo por um curto período de
tempo, e, em seguida, desloca-se para o processo seguinte, e assim por
diante. À
medida que o processador executa milhões de instruções por segundo,
isto dá a impressão de que muitos processos são executadas
simultaneamente.
Em
um sistema informático que suporta mais de um processo de cada vez,
algum mecanismo deve ser usado para mesclar de uma tarefa para outra. Existem dois principais métodos utilizados para fazer essa troca:
*
Agendamento Cooperação indica que uma tarefa que está sendo executado
em algum momento abandonarem voluntariamente o processador e permitir
que outros processos a correr.
*
Programação de Preferência significa que uma tarefa actual é
interrompida (forçado para render) eo processador é dedicado a um outro
processo em modo de espera.
O
problema da mudança para a cooperação é um processo que poderia demorar
e assim negar a execução de outros processos e poderia resultar em
nenhum trabalho que está sendo feito. Um exemplo de um sistema de cooperação é o Windows 3.1 (Deus nos livre!).
A programação preventiva é melhor. Dá
mais respostas a todos os processos e ajuda a evitar (ou reduzir o
número de ocorrências) contra o medo de máquinas bloqueados. Windows NT e Windows posteriormente, 2000/2003 é um exemplo de sistema operacional, tais.
Nota: Somente para os programas de 32 bits no Windows 95/98 para a pré-programação preventiva. Programas
de 16 bits ainda são escalonados cooperativamente, o que significa que é
fácil para um programa para pegar um 16-bit computador Windows.
Alternância de contexto
Quando
o processador muda de um processo para outro, o seu estado (os
registradores do processador e dados associados) devem ser salvos, por
um tempo reinicia o processo e continuar como se nunca tivesse sido
interrompida. Uma vez que este estado tenha sido salvo, o processo de espera seguinte é ativado. Trata-se
de carregar os registradores do processador e memória, com todos os
dados salvos anteriormente, e reiniciar a instrução que seria executada
quando houve a última interrupção.
O ato de mudar de um processo para outro é chamado troca de contexto. Um período de tempo que um processo execute antes de ser mudado é chamado slice ou período de quantum de tempo.
Scheduling (Programação)
A
decisão sobre a qual o processo seguinte a ser executada é chamado de
escala (programação) e pode ser feito de uma variedade de maneiras.
Escalonadores
de cooperação são geralmente muito simples, uma vez que os processos
são organizados em fila circular (ROUND ROBIN). Quando um processo é deixado correr, ir para o fim da fila. O processo no topo da fila é então executado, e todos os processos de se mover para cima um lugar na fila. Isso fornece uma medida justa, mas não impede que um processo monopolize o sistema (não sair).
Escalonadores
de preferência usar um relógio de tempo real que gera interrupção a
intervalos regulares (digamos, a cada centésimo de segundo). Cada vez que uma interrupção ocorre, o processador muda para outra tarefa. Sistemas
tipicamente empregam a programação, tais atribuir prioridades a cada
processo, de modo que alguns podem ser realizados com mais freqüência do
que outros.
Carregar Sistema Operacional
O sistema operacional pode ser carregado na memória do computador de duas maneiras.
Já está presente na ROM.
Ele é carregado a partir do disco quando o computador está ligado.
Se
o SO já está presente em ROM (para sistemas como controladores
industriais, bombas de óleo, etc), ele ganhará controle imediato do
processador para ser conectado ao computador. Para
sistemas mais complexos, o SO é normalmente armazenado em mídia
secundária (como disco) e é carregado na memória RAM quando o computador
está ligado. A vantagem deste sistema é que o cronograma para o sistema operacional é mais fácil de fazer e definido.
O processo de inicialização
Descreve a acção da carga inicial do sistema operativo do disco para a memória RAM. Uma
pequena rotina armazenada em ROM, chamado bootstrap loader ou IPL
(Initial Program Loader), lê uma rotina especial de carga no disquete. Em baseada em disco do sistema, essa rotina normalmente reside na trilha 00, setor 00 (ou 01), e é chamado boot sector. O código contido no setor é transferido para a RAM, e depois executado. Ele tem a responsabilidade de carregar o resto do sistema operativo para a memória.
Diferentes tipos de processos em sistemas operativos
Os sistemas operacionais são divididos em categorias que definem as suas características. Os sistemas modernos podem utilizar combinações destas categorias descritas abaixo.
LOTE (em LOT)
O tipo mais antigo de SO permite que um programa para ser executado somente em um momento. O programa é carregado para o computador executa através. Os dados usados pelo programa não pode ser modificado enquanto o programa está sendo executado. Qualquer erro no programa ou dados significa começar tudo de novo.
INTERACTIVE
Estas mudanças permitem a entrada de dados e também durante a execução do programa. Os sistemas típicos são reservas aéreas de vôo e linguagens como BASIC.
TIME-SHARING/MULTI-USUÁRIO
Estas partes OSs computador a partir de mais de um usuário, e tem técnicas preventivas de agendamento.
MULTI-TAREFA
Mais de um processo podem ser executados simultaneamente. O processador é se espalhou rapidamente entre os processos. Um utilizador pode ter mais de uma execução do processo de cada vez.
TEMPO REAL
Principalmente usado em telecomunicações processo de controle, etc. O
sistema operativo controla as várias entradas que afectam a execução de
processos, alterando os modelos de computador do ambiente, e, assim,
que afecta as saídas, dentro de um período de tempo garantido
(tipicamente <segunda 1).
MULTI-PROCESSAMENTO
Um computador que tem mais de uma CPU processo de execução específica.