1. Funções
1.1. Gerenciamento de processos
1.1.1. criar e eliminar, suspender e retomar, sincronismo e comunicação entre processos;
1.2. Gerenciamento da memória principal
1.2.1. Manter o controle das partes da memória que estão sendo usadas e por quem, decidir que processos serão carregados para memória quando houver espaço disponível, alocar e desalocar espaço de memória quando necessário;
1.3. Gerenciamento de memória secundária
1.3.1. O SO é responsável pelas atividades de alocação de espaço livre.
1.4. Gerenciamento de Entrada/Saída
1.4.1. Mantem os device drivers para comunicação com os deferentes dispositivos, um buffer-caching para o sistema;
1.5. Gerenciamento de arquivos
1.5.1. Cria e eliminar arquivos e diretórios, manter mapeamento dos arquivos em disco;
1.6. Proteção do sistema
1.6.1. se um sistema é multiusuário e permite múltiplos processos concorrentes, estes processos devem ser protegidos de outras atividades;
1.7. Networking
1.7.1. Em um sistema distribuído (fracamente acoplado) cada processador tem sua própria memória e seus processadores que se comunicam através do SO. A comunicação entre eles deve considerar roteamento e estratégias de conexão;
1.8. Interpretador de comandos
1.8.1. um dos mais importantes programas do SO é o interpretador de comandos, que serve de interface entre o usuário e o SO. Alguns SO’s incluem este programa no próprio núcleo (kernel). Já outros sistemas, como o DOS e o UNIX, tratam o interpretador de comandos como um programa especial que é executado quando uma sessão é iniciada.
2. Caracterização
2.1. É um programa ou um conjunto de programas cuja função é gerenciar os recursos do sistema, fornecendo uma interface entre o computador e o usuário.
3. Evolução
3.1. (1792 - 1871) - máquina diferencial
3.1.1. A ideia era a de criar uma máquina que conseguisse acabar de uma vez por todas com os principais erros que apareciam constantemente em tabelas de logaritmos.
3.2. (1815 – 1852) – primeira programadora
3.2.1. o primeiro algoritmo para ser interpretado por uma máquina. O algoritmo teria funcionado se a máquina de Babbage tivesse sido realmente construída, mas o projeto só foi concluído em 2002, pelo Museu da História do Computador.
3.3. 1ª Geração - Válvulas
3.3.1. John Atanasoff – Iowa State College - primeira máquina binária
3.3.2. Konrad Zuse – Z3 - máquina de calcular automáticas com relés
3.3.3. COLOSSUS - feito pelos Britânicos para decifrar msgs codificadas
3.3.4. Howard Aiken – PhD em Harvard – Mark I e II
3.3.5. John Mauchley e J. Presper Eckert – construíram o ENIAC
3.4. 1950 - Cartões perfurados
3.4.1. *Uma máquina grande e cara *Requer um operador 100% operando a maquina. *Diversas tarefas similares organizadas em “batches” que requerem os mesmos recursos. *Exemplo: Carregue o compilador, *Execute todos os programas a serem compilados.
3.5. 2ª Geração – Transistores
3.6. 3ª Geração: Circuitos Integrados e Computadores Incompatíveis
3.7. 3ª Geração: multiprogramação & Spooling para sistemas Batch
3.8. OS/360 - 1967
3.9. UNIX - 1970
3.10. CP/M – 1976
3.11. MS/DOS – 1980
3.12. Mac OS – 1984
3.13. Windows - 1985
3.14. Linux - 1991
4. Tipos de Sistemas Operacionais
4.1. Desktop
4.1.1. Smart Office
4.1.1.1. O Smart Office é um conceito de escritório que possui todas as facilidades de uma grande empresa concentradas em um único espaço. E este escritório conta com várias opções e planos de uso que se moldam de acordo com a demanda e necessidade do cliente. De forma simples e fácil.
4.1.2. Home Office
4.1.2.1. O home office é um conceito de modelo empresarial, muito adotado devido a globalização da economia e aumento da terceirização de serviços, o que acaba mudando o perfil do emprego e do local de trabalho. O número de micro e pequenas empresas que começam seus negócios em casa tem sido cada vez maior, transformando os home offices em alavancas do setor empresarial e da economia.
4.2. Servidor
4.2.1. Redes
4.2.1.1. Um servidor é um sistema de computação centralizada que fornece diferente serviços a uma rede de computadores, existem vários tipos de servidores com várias funções diferentes. Os computadores que acessam os serviços de um servidor são chamados clientes, em pequenas e médias empresas é comum se ter um ou mais servidores que acumulem funções, enquanto em grandes empresas tem-se um servidor para cada serviço.
4.2.2. Network
4.2.2.1. É um sistema de suporte onde existe a partilha de serviços e informação entre indivíduos ou grupos que têm um interesse em comum.
4.3. Descentralizados
4.3.1. Blockchain
4.3.1.1. É uma tecnologia que visa a descentralização como medida de segurança. São bases de registros e dados distribuídos e compartilhados que têm a função de criar um índice global para todas as transações que ocorrem em um determinado mercado.
4.4. Em tempo real
4.4.1. Redundantes
4.4.1.1. É um sistema aonde os arquivos sao duplicados, por exemplo em 2 serviddores que trabalham juntos os arquivos são gravaodos nos 2 e se um dar problema o outro consegue suportar a demanda sozinho até o outro ser consertodo, com isso tera sempre um redundancia dos arquivos e não tera perda.
4.4.2. Real-time
4.4.2.1. É um sistema operacional/operativo destinado à execução de múltiplas tarefas onde o tempo de resposta a um evento (externo ou interno) é pré-definido; não importando, como é comum pensar-se, se a velocidade de resposta é elevada ou não. Esse tempo de resposta é chamado de prazo da tarefa e a perda de um prazo, isto é, o não cumprimento de uma tarefa dentro do prazo esperado, caracteriza uma falha do sistema.
5. estruturas
5.1. sistemas monolíticos
5.1.1. o sistema é estruturado de forma que as rotinas podem interagir livremente umas com as outras. Quando esta técnica é usada, cada rotina no sistema possui uma interface bem definida em termos de parâmetros e resultados.
5.2. sistemas em camadas
5.2.1. O SO é dividido em camadas sobrepostas, onde cada módulo oferece um conjunto de funções que podem ser utilizadas por outros módulos.
5.3. sistemas clientes servidores
5.3.1. Uma tendência dos sistemas operacionais modernos é transferir códigos para as camadas mais superiores e remover o máximo possível de código em modo núcleo, deixando um micronúcleo mínimo (também chamado de microkernel).