Buscar

Resumo - Sistemas Operacionais Modernos - Tanembaum | Capítulo 1

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 12 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 12 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 12 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Continue navegando


Prévia do material em texto

�
	
SISTEMAS OPERACIONAIS MODERNOS
¹Rayanne Oliveira de Moura; ² Lucas de Paiva Santos; ³Vinícius de Freitas Silva; 4 Luís Guilherme de Paiva
¹²³4 Uniube – Universidade de Uberaba
rayanneomoura@gmail.com
Palavras-Chaves: COMPUTACIONAL. CÓDIGO. LINGUAGEM. INTERFACE.
INTRODUÇÃO
Um computador moderno consiste em um ou mais processadores, alguma memória principal, discos, impressoras, um teclado, um mouse, um monitor, interfaces de rede e vários outros dispositivos de entrada e saída. Sendo assim, trata-se de um sistema complexo. Para otimizar o seu gerenciamento de componentes, os computadores foram equipados com um dispositivo de software chamado de sistemas operacionais, que tem como objetivo oferecer um modelo de computados com dispositivos e aplicativos apresentados de maneira mais simples e limpa, para o usuário poder utilizar os recursos de maneira mais fácil. 
A maioria das pessoas tiveram experiencias de utilização com o Windows, Linux ou OS X, mas, na verdade, o programa com o qual realmente interagem, é chamado de shell (interpretador de comandos) quando é baseado em texto e no GUI (Graphical User Interface) quando utiliza de ícones. 
Os computadores trabalham com dois modos de operação: modo núcleo e modo usuário. O sistema operacional opera em modo núcleo. Ou seja, possui acesso completo a todo o hardware e pode executar qualquer instrução que a máquina for capaz de executar. Já no modo usuário, apenas um subconjunto das instruções da máquina está acessível. 
O QUE É UM SISTEMA OPERACIONAL? 
Não é possível definir com absoluta precisão o que é um sistema operacional. Isso acontece porque o sistema operacional que, além de ser um software que trabalha em modo núcleo, exerce mais duas funções que não estão relacionadas. Sendo elas: fornece um conjunto de recursos abstratos limpos em vez de recursos confusos de hardware e gerenciar esses conjuntos de hardware.
O SISTEMA OPERACIONAL COMO UMA MÁQUINA ESTENDIDA
A arquitetura da maioria dos computadores em nível de linguagem de máquina é primitiva e complicada de programar. Por isso, foram criados drivers que lidam com o hardware e fornece uma interface para ler e escrever blocos de dados. 
Mesmo assim, esse nível é baixo demais para a maioria dos aplicativos. Sendo assim, os sistemas operacionais fornecem mais um nível de abstração: arquivos. 
Boas abstrações simplificam uma tarefa praticamente impossível em duas tarefas gerenciáveis. 
Uma das principais tarefas dos sistemas operacionais é esconder o hardware e em vez disso apresentar programas com abstrações de qualidade, limpas, elegantes e consistentes com as quais trabalhar.
O SISTEMA OPERACIONAL COMO UM GERENCIADOR DE RECURSOS
Quando um sistema operacional oferece abstrações para programas de aplicativos, trata-se de uma visão top-down. Mas, quando o sistema operacional tem objetivo gerenciar todas as partes de um sistema complexo, trata-se de uma visão bottom-up.
Os sistemas operacionais modernos permitem a realização de múltiplas tarefas, evitando assim, o caos em especificas áreas de utilização comum. Ele executa, ao mesmo tempo, múltiplos programas que estão na memória. Resumindo, essa visão sustenta que a sua principal função é manter o controle sobre os programas que estão sendo utilizados e seus recursos, inclusive mediar requisições conflitantes de diferentes programas e usuários. 
Nesse gerenciamento está incluso o conceito de multiplexação de recursos. Isso ocorre de duas maneiras diferentes: no tempo e no espaço. Sendo a sua aplicação no tempo um recurso de utilização quando diferentes programas ou usuários se revezam usando-o. Já a multiplexação de espaço, ao invés de fornecer o revezamento, garante que cada usuário tem direito a uma parte do recurso em questão. 
HISTÓRIA DOS SISTEMAS OPERACIONAIS
Os sistemas operacionais estão em constante evoluções. Sempre atualizando e introduzindo melhorias e avanços. Porém, o primeiro computador digital, foi projetado pelo matemático inglês chamado Charles Babbage. Seu objetivo era construir uma máquina analítica. O matemático encontrou problemas para colocar sua invenção em funcionamento. Se tratava de uma máquina puramente mecânica e a tecnologia da época não conseguia promover recursos para colocá-la em funcionamento. Babbage percebeu que precisaria de um software para sua máquina, sendo assim, contratou Ada Lovelace, que foi datada como a primeira programadora do mundo. 
A PRIMEIRA GERAÇÃO (1945-1955): VÁLVULAS 
Após os esforços de Babbage, houve pouco progresso nas construções de computadores até a Segunda Guerra Mundial. Isso aconteceu até o professor John Atanasoff e seu aluno Clifford Berry construírem o primeiro computador digital funcional na Universidade do Estado de Iowa. Ele usava 300 válvulas. 
Muitos outros computadores surgiram na época e utilizaram de diferentes segmentos de criação. Alguns utilizam a válvula ou eram binários. Mesmo assim, primitivos. 
A programação utilizada era código de máquina ou através de circuitos elétricos. 
Em 1950 houve a introdução dos cartões perfurados que permitiam escrever programas em cartões e lê-los.
A SEGUNDA GERAÇÃO (1955-1965): TRANSISTORES E SISTEMAS EM LOTE (BATCH)
Foi introduzida nessa época o conceito de computadores de grande porte. Eram máquina que ficavam isoladas em grandes salas climatizadas projetadas especialmente para atendê-los e comportá-los. Para poder executar qualquer tarefa, primeiramente o programador precisava escrever o código em um papel e então perfurava os cartões. As linguagens utilizadas eram o FORTRAN ou assembly. Todo esse processo era muito demorado e demandava muito tempo. Sendo assim, foi desenvolvido uma solução chamada de sistemas em lote ou batch. Que se consistia em reunir um lote de tarefas na sala de entradas e então passa-lo para uma fita magnética utilizando de um computador pequeno e relativamente barato. 
Os computadores da segunda geração eram utilizados para cálculos científicos ou para resolver equações. Eram programados na linguagem FORTRAN e linguagem de montagem. Os sistemas operacionais eram: FMS, IBSYS e o sistema operacional da IBM para o 7094.
A TERCEIRA GERAÇÃO (1965-1980): CLS E MULTIPROGRAMAÇÃO
No início da década de 60, os fabricantes de computadores tinham duas vertentes de produtos. Os computadores de grande porte, utilizados para a realização de cálculos complexos e os computadores comerciais, que eram voltados para a utilização de ordenação e impressão de fitas.
Foi então que a IBM introduziu o System/360. Os computadores possuíam a mesma arquitetura e conjuntos de instruções, o que diferenciava era apenas o preço e desempenho. Sendo assim, o 360 iniciou a ideia de que programas escritos para uma máquina poderiam operar em todas as outras. Além disso, foi a primeira linha a utilizar CIs (circuitos integrados).
Uma das técnicas mais importantes da época foi a multiprogramação. Que se consistia em dividir a memória em várias partes com uma tarefa em cada partição. Esse conceito permitia que enquanto uma tarefa ficava esperando pelo termino da E/S, outra podia usar a CPU. 
Um aspecto importante nos sistemas operacionais da 3ª geração foi a técnica de spooling. Que se consistia em basicamente na capacidade de transferir tarefas de cartões para o disco tão logo eles eram trazidos para a sala do computador.
Nessa época a entrada e saída de tarefas levavam horas. No desejo de respostas rápidas. Utilizam o time-sharing, que se baseia no compartilhamento de tempo. O time-sharing se trata de uma variante da multiprogramação, na qual cada usuário tem um terminal on-line.
O primeiro sistema de compartilhamento de tempo para fins diversos, foi o CTSS. Foi desenvolvido no M.I.T em um 7094 especialmente modificado. Já o sistema MULTICS foi projetado para suportar centenas de usuários em uma máquina apenas um pouco mais poderosa do que um PC baseado no 386 da Intel.
Outro importante desenvolvimento durante a terceira geraçãofoi o crescimento dos minicomputadores. 
Ken Thompson, um dos cientistas de computação no Bell Labs que havia trabalho no projeto do MULTICS decidiu escrever uma versão mais despojada e para um usuário do MULTICS. Mais tarde, através desse trabalho, desenvolveu-se o sistema operacional UNIX. A partir do mesmo, foi desenvolvido algumas ideias e sistemas. Tais como o Linux e o Minix.
A QUARTA GERAÇÃO (1980 – PRESENTE): COMPUTADORES PESSOAIS
Os computadores modernos surgiram através do desenvolvimento dos circuitos integrados em larga escala. Que são chips contendo milhares de transistores em um centímetro quadrado de silicone. 
A Intel quando lançou o 8080 pediu a Gary Kindall para escrever um sistema operacional para o mesmo. Kindall escreveu então o CP/M – um sistema baseado em disco. Por achar que microcomputadores baseados em disco não tinham futuro, Kindall solicitou os direitos autorais do CP/M e a Intel concordou em cede-los. Formou-se então a Digital research.
Na década de 1980, a IBM criou o IBM PC. A IBM contratou Bill Gates para licenciar o seu interpretador BASIC. Para o desenvolvimento do sistema operacional, Bill Gates sugeriu a Digital Research, que era então a empresa que dominava os sistemas operacionais do mundo. Porém, Kindall se recusou a se encontrar com a IBM. Sendo assim, a IBM pediu novamente para Gates lhes fornecer um sistema operacional. 
Gates então comprou a fabricante de computadores Seattle Computer Products por se dar conta que a mesma tinha um sistema operacional adequado – conhecido como DOS (Disk Operating System). Dessa maneira, Bill ofereceu a IBM um pacote DOS/BASIC em que a mesma aceitou. Porém a IBM desejava algumas alterações. Gates então contratou Tim Paterson para faze-las na sua emergente empresa, Microsoft. O sistema final foi nomeado como MS-DOS e logo passou a dominar o mercado do IBM PC. A versão inicial do MS-DOS era primitiva e tinha bastante aspectos tirados do UNIX.
O CP/M e MS-DOS eram baseados na digitação de comandos. Mas na década de 1960, Engelbart inventou a Graphical User Interface (GUI) que se baseia em ícones, janelas, menus e mouse. Essas ideias foram adotadas por pesquisadores na Xerox PARC e incorporada nas máquinas que eles produziam.
Em uma visita a PARC, Steve Jobs tomou conhecimento do potencial de uma GUI. Sendo assim, partiu para a produção de um Apple. O projeto se consistiu em duas tentativas. A primeira fracassou comercialmente. Mas a segunda foi um sucesso e se consistia em ser amigável com o usuário. 
A Microsoft decidiu lançar um sucessor para MS- DOS. Sendo assim, a sua linha do tempo ficou da seguinte maneira:
Windows: Sistema baseado em GUI executado em cima do MS-DOS. Entre 1985 a 1995 era apenas um ambiente gráfico sobre o MS-DOS. 
Windows 95: incorporou muito aspectos de sistemas operacionais, usando o MS-DOS apenas para a inicialização.
Windows 98: Apenas com ligeiras mudanças. 
Windows 2000: Sucessora do Windows 98.
Windows XP: versão sucessora ligeiramente atualizada do Windows 2000. Substituiu todas as versão do Windows.
Windows Vista: lançado em janeiro de 2007 o sistema se compunha de uma nova interface gráfica, segurança mais firme e muitos programas para os usuários. Porém, obteve críticas e avaliações negativas.
Windows 7: Não introduziu muitos aspectos novos mas era relativamente pequeno e bastante usado. Conquistou grande parte do mercado se tornando um sucesso. 
Windows 8: Sistema com visual e sensação completamente diferentes, voltados para telas de toque. 
Um dos competidores importantes no mundo dos computadores pessoas é o UNIX e seus derivados. Porém é predominantemente mais forte entre servidores de redes e empresas, mas também é utilizado em computadores de mesa, notebooks, entre outros. 
A QUINTA GERAÇÃO (1990 – PRESENTE): COMPUTADORES MÓVEIS 
As pessoas desejavam um dispositivo de comunicação que elas pudessem levar para toda parte. O primeiro telefone móvel apareceu em 1946 e pesava em torno de 40 quilos. 
Na década de 1970 foi criado outro telefone de aproximadamente um quilo que é considerado o verdadeiro telefone móvel. 
Hoje em dia, cerca de 90% da população global utiliza um telefone móvel. 
O primeiro smartphone foi inventado em meados de 19990, quando a Nokia lançou o N9000 que combinava dois dispositivos separados: um telefone e um PDA. 
Agora que os smartphones se tornaram onipresentes, a competição de vários sistemas operacionais gera uma competição feroz com o desfecho incerto. Podemos citar: iOS, Android, Windows Phone, entre outros.
1.3 REVISÃO SOBRE HARDWARE DE COMPUTADORES
Quando falamos em sistemas operacionais, não podemos deixar passar sem falar sobre hardware de computadores, pois estão intimamente ligados, para um sistema operacional funcionar, ele deve conhecer profundamente o hardware, pelo menos como aparece para o programador, pois ele estende o conjunto de instruções do computador e gerencia seus recursos.
1.3.1 PROCESSADORES
O processador cuida das informações para que elas sejam transmitidas e interpretadas, e ocorra a comunicação no computador. 
O “cérebro” do computador é a CPU. Ela busca instruções da memória e as executa. O ciclo básico de toda CPU é buscar a primeira instrução de memória, decodifica-la para determinar o seu tipo e operandos, executá-la, e então buscar, decodificar e executar as instruções subsequentes. E é basicamente o processador que vai determinar a velocidade dessa troca de informações. Então também podemos dizer que “o processador é o cérebro do computador”.
O processador também atua na ligação entre as instruções recebidas por meio dos dispositivos, armazenadas na memória RAM, e enviadas novamente a um dispositivo de saída, como ao monitor, a impressora, caixas de som, entre outros.
1.3.2 MEMÓRIA
O sistema de memória é construído como uma hierarquia de camadas. Que a camada superior é representada pelos registradores, que possui uma velocidade mais alta, porem capacidade menos e um custo maior por bit do que as inferiores. Essa camada consiste em registradores internos à CPU, que são feitos do mesmo material que ela, e desse modo, se tornam tão rápidos quando ela. 
Na camada subsequente vem a memória cache, que é controlada principalmente pelo hardware. Ela trabalha em conjunto com o processador, de certa forma, todos os processadores atuais, trazem uma quantidade de memória cache embutida no encapsulamento.
Logo após, na próxima camada, vem a memória principal, que cuida da locomotiva do sistema de memória, essa memória, é tradicionalmente chamada de RAM (RAM ACCESS MEMORY), ela não armazena os conteúdos permanentemente, diferente do HD, sendo assim, a memória RAM, pode ser entendida como um espaço temporário de trabalho.
1.3.3 DISCOS
Em seguida, na hierarquia das camadas, vem o disco magnético, o armazenamento de disco é duas ordens de magnitude mais barato, por bit, que o da RAM e frequentemente duas ordens de magnitude maior também.
Sua utilidade é o armazenamento de dados, isso é, quando algum arquivo é armazenado, ele não se perde com o desligamento da máquina, como foi explicado o caso da memória RAM (memória temporária).
1.3.4 DISPOSITIVOS DE E/S
Normalmente, o sistema operacional não tem de gerenciar somente a CPU e a memória, dispositivos de entrada e saída também interagem intensamente com o sistema operacional. Também conhecidos como periféricos, alguns dos principais deste, são, teclado, mouse, impressora, microfone, entre outros. Eles permitem a interação da máquina com o homem, possibilitando a entrada e/ou saída de dados.
1.3.5 BARRAMENTOS
O barramento é um conjunto de linhas de comunicação que permitem a interligação entre os dispositivos, como a CPU, a memória e outros periféricos.
À medida que os processadores e as memórias foram ficando mais rápidos, a capacidade de um único barramento de lidar com todo o tráfego foi exigida até o limite. E como resultado, barramentos adicionais foram acrescentados, tanto para dispositivos deentrada e saída mais rápidos quanto para o tráfego CPU para memória.
Os barramentos podem ser chamados também de:
Interfaces, portas, conectores e slots
Resumidamente tem como objetivo reduzir o número de vias necessárias para a comunicação dos diversos componentes, reunindo as comunicações através de um único canal de dados.
1.3.6 INICIALIZANDO O COMPUTADOR
Todo computador possui uma placa-pais, e dentro dessa placa, existe um programa chamado de sistema BIOS, ele conta com rotinas de E/S de baixo nível, incluindo procedimentos para ler o teclado, escrever na tela e realizar a E/S no disco, entre outras coisas.
Quando o computador é inicializado, o BIOS começa a executar, ele confere quanta memória RAM está instalada e se o teclado e outros dispositivos estão instalados. Ele então determina o dispositivo de inicialização tentando uma lista de dispositivos armazenados na memória CMOS.
O sistema operacional consulta então o BIOS para conseguir as informações de configuração. Para cada dispositivo ele confere para ver se possui o driver do dispositivo. Se não possuir, pede para o usuário inserir um CD-ROM com o driver, ou para baixá-lo da internet. Assim que todos drivers estiverem disponíveis, o sistema operacional os carrega no núcleo. Então ele inicializa suas tabelas, cria os processos de segundo plano necessários e inicia um programa de identificação, que é basicamente o login, para você ter acesso ao sistema.
1.4 O ZOOLÓGICO DOS SISTEMAS OPERACIONAIS
1.4.1 SISTEMAS OPERACIONAIS PARA COMPUTADORES DE GRANDE PORTE
Quando falamos de computadores de grande porte estamos nos referindo a máquinas que podem ocupar salas inteiras, são os computadores usados em grandes empresas, corporações, centros de pesquisas etc. Esses computadores diferenciam-se dos computadores pessoais além do espaço físico ocupado em sua capacidade processamento de informações, já que são os responsáveis pelo fluxo de informação da empresa.
1.4.2 SISTEMAS OPERACIONAIS DE SERVIDORES
 Muitas vezes em conjunto com computadores de grande porte esse Sistema operacional está presente em praticamente toda empresa informatizada, pois com esse sistema a empresa serve múltiplos usuários de uma vez e permite que usuários acessem a informações remotamente.
1.4.3 SISTEMAS OPERACIONAIS DE MULTIPROCESSADORES
Multicomputadores ou multiprocessadores é a denominação para os sistemas que estão conectados em um mesmo sistema, ou seja, mais de um CPU conectado em um mesmo sistema, assim aumentando o potencial computacional. A tecnologia para os multiprocessadores tem crescido exponencialmente.
1.4.4 SISTEMAS OPERACIONAIS DE COMPUTADORES PESSOAIS
Os computadores pessoais dão suporte a multiprogramação, muitas vezes com vários programas já iniciados. Sua função é oferecer uma boa interface para um único usuário. São amplamente usados para processadores de texto, planilhas e acesso à internet.
1.4.5 SISTEMAS OPERACIONAIS DE COMPUTADORES PORTÁTEIS
 Computadores portáteis ou assistente pessoal digital é um pequeno computador que serve para ajudar em pequenas funções como agendas, anotações. Os sistemas operacionais executados nesses computadores portáteis são cada vez mais sofisticados, com a capacidade de telefonia, fotos digitais etc.
1.4.6 SISTEMAS OPERACIONAIS EMBARCADOS
São executados em computadores que controlam dispositivos que geralmente não são considerados computadores e não aceitam softwares instalados por usuários, podemos citar como exemplo aparelhos de TV, carros, DVD, celulares etc. A diferença do sistema embarcado com o sistema portátil é a certeza que nenhum software duvidoso será executado nele.
1.4.7 SISTEMAS OPERACIONAIS DE NÓS SENSORES
Esses nós são computadores minúsculos que se comunicam entre si e com uma base usando comunicação sem fio utilizando sensores. Os sensores são computadores pequenos movidos a bateria, possui energia limitada, mas funciona por um longo período de tempo, a rede do sistema deve ser robusta o suficiente para suportar possíveis falhas.
1.4.8 SISTEMAS OPERACIONAIS DE TEMPO REAL
Esses sistemas são caracterizados por terem tempo como um parâmetro fundamental, esses computadores devem coletar dados sobre o processo de produção e usá-los para controlar as máquinas na fábrica.
1.4.9 SISTEMAS OPERACIONAIS DE CARTÕES INTELIGENTES
Esses são os menores sistemas operacionais e são executados em cartões inteligentes do tamanho de um cartão de credito que contém um chip de CPU. São limitados em relação ao consumo de energia e de memória, geralmente são usados para realizar apenas uma função, alguns desses cartões são orientados a Java.
1.5 CONCEITOS SOBRE SISTEMAS OPERACIONAIS 
A maioria dos sistemas operacionais apresentam certos conceitos que servem para que possamos entendê-los dentre esses existe os processos, um processo é basicamente o próprio sistema em execução onde cada processo tem um espaço na memória que vai de 0 até um máximo onde esse processo só pode ler e escrever. Quando um processo é suspenso temporariamente, ele deverá ser reiniciado mais tarde, exatamente do mesmo ponto que estava quando foi interrompido, ou seja, todas as informações referentes ao processo estarão salvas em algum lugar. Podemos citar como um conceito de sistema o espaço de endereçamento que consiste em uma memória principal que é utilizada para armazenar programas que estão em execução, hoje em dia praticamente todos os computadores apresentam um espaço para armazenamento. Outro conceito fundamental que compõe praticamente todo sistema operacional atualmente é o sistema de arquivos, os arquivos podem ser definidos em hierarquias a partir da raiz, cada arquivo dentro do diretório pode ser especificado fornecendo um caminho a partir do topo da hierarquia, esses caminhos formam uma lista de diretórios que deve ser percorrida a partir do diretório-raiz. Dispositivos de entrada e saída tais como teclado, impressora, monitor etc. são conceitos que cabe ao sistema operacional gerenciar esses dispositivos. Os computadores contêm muitas informações e em empresas, instituições muitas destas informações são confidenciais, portanto exige-se um cuidado maior com a segurança, por isso existe meios dos sistemas protegerem ou limitar o acesso com os usuários daquele sistema. 
1.6 CHAMADAS DE SISTEMAS
Consiste em um mecanismo ao qual o computador solicita um serviço do sistema operacional sobre o qual ele está sendo executado, como o acesso a uma unidade de disco, na maioria dos sistemas as chamadas podem ser realizadas apenas no espaço do usuário, enquanto em alguns sistemas o código privilegiado também emite chamadas de sistema. São 
 
Vários os tipos de chamada que podem ser feitas nos sistemas, como a chamada para gerenciamento de processos que consiste na criação de uma cópia exatas do processo original, existe também as chamadas para gerenciamento de arquivos, diretório entre outras.      
1.7 ESTRUTURA DE SISTEMAS OPERACIONAIS
Este tópico tem o intuito de mostrar seis estruturas, que darão ideia de alguns projetos, como sistemas de camadas, cliente-servidor, monolíticos, micronúcleos, maquinas virtuais e exonúcleos.
1.7.1 SISTEMAS MONOLÍTICOS
Na abordagem monolítica o sistema é compreendido como um programa que executa em modo núcleo. A construção do sistema é feita através de rotinas que são compiladas e através do linker é juntada em um arquivo único.
Mesmo sendo um sistema único, é possível ter uma estrutura (como por exemplo, pilha, lista).
A organização baseia-se em três estruturas: Invocar a rotina, execução da rotina, o trabalho entre as rotinas utilitárias e as rotinas de serviço.
Existem também as extensões carregáveis, que no Windows são as DLL e no Unix são as Bibliotecas Compartilhadas.
1.7.2 SISTEMAS DE CAMADAS
As camadas são construídas uma encima da outra. O primeiro sistema neste modelo foi construído em 1968 que tinha 32K de palavras de 27bits. O sistema era formado por seis camadas, sendo:
Camada 0 realizava a alocação do processor;
1 Gerenciamento e Memória;
2 Comunicaçãodo operador com o processo;
3 Gerenciamento de E/S;
4 Programa de usuário;
5 O usuário final, no caso operador.
Nesta época outro sistema generalizou, o MULTICS que tinha como diferencial os anéis concêntricos que podia facilmente estender e estruturar em subsistemas.
1.7.3 MICRONÚCLEOS
Depois de diversos estudos de vários pesquisadores sobre a quantidade de erros por cada 1000 linhas de código e notaram que a quantidade de erros por cada 1000 linhas de código fica entre dois e dez, isso, em um sistema operacional de 5 milhões de linhas de código, é provável que contenha entre 10000 e 50000 erros no núcleo.
Visando isso, o projeto micronúcleo, procura tornar o núcleo do sistema operacional menor e mais simples possível, atingindo assim uma maior confiabilidade através da divisão do sistema em módulos pequenos e bem definidos, então, basicamente, a ideia é que se você executar cada driver de dispositivo e sistema de arquivos como um processo de usuário em separado, um erro em um deles pode derrubar esse componente, mas seria incapaz de derrubar o sistema inteiro.
Alguns dos micronúcleos mais conhecidos incluem Integrity, K42, L4, PikeOS, QNX, Symbian e MINIX 3.
1.7.4 O MODELO CLIENTE-SERVIDOR
Um dos efeitos de variação do tema citado acima (micronúcleo) é a criação do modelo cliente-servidor, que distingue duas classes de processo, que são elas. Servidores, que são responsáveis por prestarem serviços, e clientes, que fazem o uso desses serviços.
Basicamente, um cliente solicita um serviço enviando uma mensagem ao servidor, o servidor responde ao cliente enviando outra mensagem, a função do núcleo é realizar essa troca de mensagens
1.7.5 MÁQUINAS VIRTUAIS
O modelo de máquina virtual, cria um nível intermediário, entre hardware e o sistema operacional, e neste nível são criadas máquinas virtuais independentes, onde cada uma oferece recursos de hardware virtuais, incluindo os modos de acesso, interrupções, dispositivos de entrada e saída, entre outros.
Como cada máquina virtual é idêntica ao hardware original, cada uma delas pode executar qualquer sistema operacional capaz de ser executado diretamente sobre o hardware.
Um grande exemplo é a máquina virtual Java, conhecida também como JVM (JAVA VIRTUAL MACHINE), o compilados Java, produz o código para a JVM, que então é executado por um programa interpretador da JVM.
1.7.6 EXONÚCLEOS
Já no sistema exonúcleo, o hardware é alocado previamente, não podendo ocorrer o acesso indevido de outro sistema, ele basicamente aloca recursos físicos de hardware, como o tempo de um processador, páginas de memória, e blocos de disco, para diferentes programas.
Resumidamente é uma estratégia de dividir a máquina real, em vez de cloná-la, isto é, dar a cada usuário um subconjunto dos recursos.
Uma das vantagens desse esquema é que ele poupa uma camada de mapeamento, coisa essa que nos outros projetos, cada máquina virtual pensa que ela tem seu próprio disco, com blocos sendo executados de 0 a algum máximo, de maneira que o monitor da máquina virtual tem de manter tabelas para remapear os endereços de discos. Com o exonúcleo, esse remapeamento não é necessário, ele precisa apenas manter o registro de para qual máquina virtual foi atribuído qual recurso.
1.8 O MUNDO DE ACORDO COM A LINGUAGEM C
   Sistemas operacionais normalmente são feitos com códigos gigantes que são escritos por vários programadores, mas o que deve ser lembrado é que os códigos escritos têm um nível bem diferente em relação ao que programadores comuns de Java, Python estão acostumados.
1.8.1 A LINGUAGEM C
   A linguagem C é a base de outras linguagens como Java e Python, podemos observar que parâmetros, tipos de dados e até mesmo as estruturas de controle é quase idêntica. Uma diferença de C é que nela podemos trabalhar com ponteiros de forma explicita. Os ponteiros são responsáveis por indicar ou apontar o caminho de uma variável, comando, parâmetro e a estrutura de dados. Temos como exemplo o seguinte código:
char c1, c2, *p;  “Aqui são declaradas as variáveis com o tipo char, e *p é criada como um ponteiro”
c1 = ’c’; <c1 é apontada para o caractere em ASCII da letra “c”>.
p = &c1; <designa o valor de c1 para p>
c2 = *p; <c2 recebe o endereço de p, que na verdade é o código ASCII da letra “c”>.
   A grande diferença de C é a possibilidade de controlar todo o lixo do programa, pois o armazenamento é estático ou explicitamente alocado. Sendo assim, podemos fazer a gestão dos dados e ter controle diferente de outras linguagens.
1.8.2 ARQUIVOS DE CABEÇALHO
   São arquivos de código que contêm declarações, constantes e podem incluir macros simples, que são chamadas ao executar uma parte do sistema.
Exemplo:
#define BUFFER_SIZE 4096 
Onde é possível definir o tamanho do buffer e o número para o qual ele vai ser substituído durante a compilação. Há muitos arquivos de cabeçalho que estão presentes no diretório central do sistema.
1.9 PESQUISA EM SISTEMAS OPERACIONAIS
As ideias que surgem ao redor de ciência de computação demoram muito tempo para que fique reconhecida. Nem sempre essas ideias são aprovadas, mas algumas podem ter um impacto muito grande no setor.
 Temos como exemplo o projeto Arpanet que demorou cerca de 20 anos para que grande parte das pessoas pudesse aproveitar. A Arpanet é um projeto da Arpa que em 1969, através de projetos acadêmicos surgiu com a primeira forma de comunicação, que é o e-mail e posteriormente em 1990 a WWW (a internet de hoje) foi criada por Tim Berners-Lee.
   Já Doug Engelbart evoluiu bastante a forma como era vista e usada a internet, ele foi responsável por criar o mouse e o teclado. Sendo assim, em 1960 foi criada a interface gráfica para os computadores, que na época era usada apenas por textos.
   Os pesquisadores atuais buscam melhorias nos sistemas sabendo que os atuais são grandes, complexos e muitos flexíveis.
�