Baixe o app para aproveitar ainda mais
Prévia do material em texto
115 M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. Capítulo 8 Arquitetura de computador – software Anteriormente, compreendemos a arquitetura computacional foca- da no hardware, entendemos como os dispositivos físicos funcionam e interagem entre si. Dando continuidade ao assunto, neste capítulo, abor- daremos a arquitetura do computador com foco no software, ou seja, a parte inteligente que trabalha sobre a parte física da máquina. O sistema operacional (SO) é o software mais importante e responsá- vel por fornecer aos programas do usuário um modelo de computador melhor, mais simples e mais limpo. Ele também é responsável por lidar com o gerenciamento de todos os recursos de hardware disponíveis, como impressora, mouse, memória RAM, entre outros (TANENBAUM; BOS, 2016). Além desse tema, abordaremos, também, a função dos aplicativos e dos utilitários. 116 Conceitos de computação I Ma te ria l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D is tâ nc ia d a Re de S en ac E AD , d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, s ob a s pe na s da L ei . © E di to ra S en ac S ão P au lo . 1 Infraestrutura O sistema de computação é composto por hardware e software. O hardware refere-se a toda a parte física, ou seja, a parte real de um sis- tema de computação. Podemos citar alguns itens que fazem parte do hardware, como: CPU, memória, impressora, cabos de rede, monitor, en- tre outros. Já o software existe para que o hardware execute o que foi determinado pelo usuário. Ele faz a abstração do acesso ao hardware para o usuário. Dessa forma, o sistema operacional faz com que o aces- so ao hardware ocorra de maneira mais fácil, sem que o usuário precise de conhecimentos avançados de eletrônica ou programação para utili- zar um recurso computacional simples, como a gravação de um arquivo em disco ou o acesso a uma página de internet. Alguns exemplos de softwares são: compiladores, editores de texto, planilhas eletrônicas, navegadores web, etc. Resumindo, o que dá vida ao hardware é o software executado sobre ele. Os componentes de um sistema operacional podem ser separados de acordo com a hierarquia apresentada na figura 1. Figura 1 – Componentes de um sistema operacional Programas de aplicação (aplicativos) Utilitários Sistema operacional Hardware 117Arquitetura de computador – software M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. Alguns sistemas operacionais conhecidos são: Windows, Linux, FreeBSD e OS X. O programa com o qual os usuários interagem é co- nhecido como shell (ou interpretador de comandos), quando é baseado em texto, ou GUI (graphical user interface), quando sua interface contém imagens como ícones. A figura 2 apresenta, de forma simplificada, a organização dos princi- pais componentes de um computador, onde o hardware está localizado na base. Ele consiste em chips, placas, discos, um teclado, um monitor e objetos físicos similares. Logo após o hardware, está o software. A maioria dos computadores tem dois modos de operação: modo núcleo e modo usuário. O sistema operacional, a peça mais fundamental de software, opera em modo núcleo ou modo supervisor (TANENBAUM; BOS, 2016). No modo núcleo, o SO tem acesso a todo o hardware e pode executar qualquer instrução recebida conforme a capacidade de execução da máquina. O software opera no modo usuário, no qual ape- nas alguns subconjuntos de instruções estão disponíveis. Operações que façam aceso a dispositivos de entrada e saída (E/S), por exemplo, só podem ser executadas pelo SO, evitando, assim, que execuções erra- das sejam realizadas, causando problemas na parte física. Figura 2 – Organização dos principais componentes de um computador Browser Player de vídeo Editor de texto Programa de interface com o usuário Sistema operacional Hardware Modo usuário Software Hardware Modo núcleo {{ Fonte: adaptado de Tanenbaum e Bos (2016, p. 15). 118 Conceitos de computação I Ma te ria l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D is tâ nc ia d a Re de S en ac E AD , d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, s ob a s pe na s da L ei . © E di to ra S en ac S ão P au lo . Segundo Tanenbaum e Bos (2016), o programa de interface com o usuário, shell ou GUI, aparece no nível mais inferior de software de modo usuário e permite que ele inicie outros programas, como um navegador web, um player de vídeo ou um editor de texto. Esses programas também utilizam bastante o sistema operacional. Os sistemas operacionais não são diferentes dos programas de usuários, apenas com relação à sua loca- lidade. Em particular, eles são enormes, complexos e têm vida longa. PARA SABER MAIS Quantos livros seriam necessários para conter o código de um sistema operacional? O código-fonte de um SO como Linux ou Windows tem cerca de 5 milhões de linhas de código. Para ter ideia do tamanho, imagine imprimir 5 milhões de linhas em formato de livro, com 50 linhas por página e 1.000 páginas por vo- lume. Para imprimir toda a informação, seriam necessários 100 volumes, que correspondem a uma estante de livros inteira. Os principais objetivos do sistema operacional são: • ocultar os detalhes de hardware do usuário; • fornecer uma interface gráfica, orientada a arquivos, escondendo detalhes relacionados a interrupções, organização do disco rígido e demais características associadas ao hardware; • gerenciar os recursos de memória, processamento e armazena- mento de um computador. Na visão bottom-up (abstração de baixo para cima), a função do sis- tema operacional é fornecer uma alocação ordenada e controlada do processador, da memória e dos dispositivos de E/S entre os vários pro- gramas competindo por eles. Já na visão top-down (abstração de cima para baixo), o SO fornece abstrações para programas aplicativos. 119Arquitetura de computador – software M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. Para conseguir realizar o gerenciamento de recursos de hardware, o sistema operacional faz uso da multiplexação (compartilhamento) de recursos de duas maneiras diferentes: no tempo e no espaço. Quando a multiplexação é feita no tempo, diferentes programas ou usuários se revezam usando um recurso. Primeiro, um deles usa o re- curso, então outro, e assim por diante. Por exemplo, imagine um compu- tador com apenas uma CPU e múltiplos programas sendo executados nela. O sistema operacional primeiro aloca a CPU para um programa, então, após acabar o tempo de execução, outro programa passa a fazer uso da CPU, então outro, e, finalmente, o primeiro de novo. Dessa forma, é papel do sistema operacional determinar como o re- curso é multiplexado no tempo, ou seja, qual será a ordem de execução e por quanto tempo cada programa terá o recurso. Outro exemplo da multiplexação no tempo é o compartilhamento da impressora. Quando vários arquivos são enviados ao mesmo tempo para a mesma saída de impressão, eles aguardam na fila para serem impressos, e uma decisão tem de ser tomada sobre qual deve ser impresso em seguida. Na multiplexação de espaço, em vezde acontecer o revezamento para utilização dos recursos, cada um tem direito a uma parte do re- curso. Calculando que há memória suficiente para manter múltiplos programas, é mais eficiente manter vários programas na memória ao mesmo tempo, cada um utilizando uma parte da memória, do que dar a um deles toda ela, principalmente se o programa usará apenas uma pequena parte do total, ficando espaço ocioso. É claro que isso gera questões de ordem, proteção, e assim por diante, e cabe ao sistema ope- racional solucioná-las. Outro recurso que é multiplexado no espaço é o disco. Em muitos sistemas, diversos usuários podem fazer uso de um disco ao mesmo tempo. O sistema operacional deve alocar espaço em disco e controlar quem está usando cada bloco. 120 Conceitos de computação I Ma te ria l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D is tâ nc ia d a Re de S en ac E AD , d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, s ob a s pe na s da L ei . © E di to ra S en ac S ão P au lo . 1.1 Tipos de sistemas operacionais Os sistemas operacionais existem há mais de meio século. Ao longo dos anos, uma grande variedade deles foi desenvolvida. Nem todos são conhecidos. Vamos conhecer alguns deles. 1.1.1 Sistemas operacionais de computadores de grande porte Os computadores de grande porte diferem dos PCs (computado- res pessoais) em termos de capacidade de E/S. Um computador de grande porte com 1.000 discos e milhões de gigabytes de dados não é incomum; um computador pessoal com essas especificações é mui- to raro de se encontrar. Computadores de grande porte são usados como servidores sofisticados de web, para sites de comércio eletrônico (e-commerce) em larga escala e para transações entre empresas B2B (business-to-business) (TANENBAUM; BOS, 2016). Segundo Tanenbaum e Bos (2016), os sistemas operacionais para computadores de grande porte são dirigidos para o processamento de muitas tarefas ao mesmo tempo, a maioria delas exigindo quanti- dades extraordinárias de E/S. Normalmente, eles oferecem três tipos de serviços: em lote (batch), processamento de transações e tempo compartilhado (timesharing). Um sistema em lote processa tarefas sem a necessidade de um usuá rio interativo presente. Exemplos de processo em lote podem ser observados, como o processamento de apólices em uma companhia de seguros ou relatórios de vendas para uma cadeia de lojas. De acordo com Tanenbaum e Bos (2016), os sistemas de processa- mento de transações lidam com grandes números de pedidos peque- nos, por exemplo, processamento de cheques em um banco ou reser- vas de companhias aéreas. Cada unidade de trabalho é pequena, mas o sistema tem de lidar com centenas ou milhares delas por segundo. 121Arquitetura de computador – software M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. Já os sistemas de tempo compartilhado permitem que múltiplos usuários remotos executem tarefas em um computador ao mesmo tempo, por exemplo, a realização de consultas a um banco de dados. 1.1.2 Sistemas operacionais de servidores Os servidores são computadores pessoais muito grandes, e o siste- ma operacional pode ser executado neles, ou em estações de trabalho, ou mesmo em computadores de grande porte. Eles atendem a múltiplos usuários ao mesmo tempo por meio de uma rede, permitindo que os usuários compartilhem recursos de hardware e software. Tipicamente, os servidores fornecem serviços de impressão, de arquivo ou de web. Eles são usados, também, para prover internet com suporte aos clientes e armazenam páginas de sites, atendendo às requisições que chegam. Segundo Tanenbaum e Bos (2016), são sistemas operacionais típi- cos de servidores: Solaris, FreeBSD, Linux e Windows Server 201x. 1.1.3 Sistemas operacionais de multiprocessadores Com a conexão de múltiplas CPUs a um único sistema, é possível obter mais potência computacional. Dependendo de como precisamen- te eles são conectados e o que é compartilhado, esses sistemas são chamados de “computadores paralelos”, “multicomputadores” ou “mul- tiprocessadores”. Os sistemas operacionais que rodam em computa- dores com múltiplos processadores normalmente possuem aspectos especiais para comunicação, conectividade e consistência de dados. Muitos sistemas operacionais populares, incluindo Windows e Linux, são executados em multiprocessadores. 1.1.4 Sistemas operacionais de computadores portáteis Os computadores portáteis, como tablets e smartphones, são co- nhecidos como PDA (personal digital assistant – assistente pessoal 122 Conceitos de computação I Ma te ria l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D is tâ nc ia d a Re de S en ac E AD , d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, s ob a s pe na s da L ei . © E di to ra S en ac S ão P au lo . digital), um computador pequeno que pode ser segurado na mão duran- te seu uso. O sistema operacional que roda nesses dispositivos pode ser o Android, da Google, ou o iOS, da Apple. A maioria deles conta com CPUs multinúcleo, GPS, câmeras e outros sensores e quantidades gran- des de memória. São várias as opções de aplicativos (“apps”) disponí- veis para instalação nesses dispositivos. 1.1.5 Sistemas operacionais embarcados Sistemas operacionais embarcados não aceitam softwares insta- lados pelo usuário, e são executados em computadores que contro- lam dispositivos que não costumam ser vistos como computadores. Exemplos típicos são os fornos de micro-ondas, os aparelhos de tele- visão, os carros, os telefones tradicionais e os MP3 players. A princi- pal diferença dos sistemas embarcados em comparação aos sistemas operacionais de computadores portáteis é a impossibilidade de insta- lação de aplicativos. Todos os softwares necessários são instalados de fábrica e estão na memória ROM (read-only memory – memória somente de leitura). Sistemas como Embedded Linux, QNX e VxWorks são populares nesse domínio. 1.1.6 Sistemas operacionais de tempo real (real-time operating systems – RTOS) A questão “tempo” é fundamental para sistemas operacionais de tempo real. Como exemplo, podemos citar um sistema de controle de processo industrial, em que computadores em tempo real devem cole- tar dados a respeito do processo de produção e usá-los para controlar máquinas na fábrica. Para isso, a coleta dos dados deve ser feita em um tempo exato, para que não atrase o processo de produção. Outro exemplo seria de um carro seguindo pela linha de montagem. Determinadas ações têm de ocorrer em determinados instantes. Se, por 123Arquitetura de computador – software M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. acaso, um robô soldador fizer as soldas antes do horário esperado ou alguns segundos depois, o carro será arruinado. Segundo Tanenbaum e Bos (2016), para os casos nos quais a ação tem de ocorrer absolutamente em um determinado momento (ou dentro de uma dada faixa de tempo), temos um sistema de tempo real crítico. Diferentemente do cenário apresentado, um sistema de tempo real não crítico é aquele em que a não realização de uma operação em um horário esperado, mesmo que ocasionalmente, é aceitável e não cau- sa danos permanentes. Sistemas de multimídia ou áudio digital en- tram nessa categoria. Smartphones também são sistemas de tempo real não críticos.Conforme Tanenbaum e Bos (2016), uma particularidade dos siste- mas de tempo real e dos embarcados é que os softwares executados nesses dispositivos são inseridos apenas pelos projetistas do sistema, ou seja, o usuário não tem acesso para instalar nenhum outro software, fazendo com que esses sistemas sejam mais protegidos. Um exemplo de tipo de sistema de tempo real é o sistema operacio- nal embarcado configurável (eCos), gratuito e open-source, destinado a aplicações embarcadas com requisitos de tempo real e pouca memó- ria. O eCos pode ser customizado baseado nos requisitos da aplicação. 1.2 Processos O processo é um conceito fundamental em SO e é basicamente um programa em execução. Pode ser entendido também como um con- têiner que armazena todas as informações necessárias para executar um programa. De acordo com Tanenbaum e Bos (2016), cada processo está liga- do a um espaço de endereçamento, uma lista de posições de memória que vai de 0 a algum número máximo. O processo pode ler e escrever 124 Conceitos de computação I Ma te ria l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D is tâ nc ia d a Re de S en ac E AD , d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, s ob a s pe na s da L ei . © E di to ra S en ac S ão P au lo . nesse local. Nesse espaço endereçável, estão o programa executável, os dados do programa e sua pilha. Associado com cada processo, há um conjunto de recursos, em geral, abrangendo registradores (incluindo o contador de programa e o ponteiro de pilha), uma lista de arquivos abertos, alarmes pendentes, listas de processos relacionados e to- das as demais informações necessárias para executar um programa (TANENBAUM; BOS, 2016). Os processos são iniciados e, depois de executarem todo o seu tra- balho, finalizados. Podemos listar quatro eventos responsáveis pela criação de processos, conforme apresentado na figura 3. Figura 3 – Etapas da criação de processos Inicialização do sistema Execução de uma chamada de sistema de criação de processo por um processo em execução Solicitação de um usuário para criar um novo processo Início de uma tarefa em lote Os processos, em algum momento, são finalizados, normalmente, de- vido a determinadas condições, como saída normal de forma voluntária, erro fatal no processo de forma involuntária, saída por erro de forma vo- luntária ou morto por outro processo de forma involuntária. Tanenbaum e Bos (2016) conceituam os estados de um processo da seguinte forma: • Em execução: realmente usando a CPU naquele instante. • Pronto: o processo está em uma lista, pronto para ser executa- do; em geral, apenas esperando que outro processo acabe sua execução. • Bloqueado: incapaz de ser executado até que algum evento externo aconteça. 125Arquitetura de computador – software M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. Na figura 4, encontramos um diagrama referente aos estados de um processo, mostrando os três estados nos quais um processo pode se encontrar. Na linha 1, o processo é bloqueado, aguardando uma entra- da. Na linha 2, o escalonador de processos seleciona outro processo para ser executado. Na linha 3, o escalonador atribui esse processo ao estado em execução. Na linha 4, o processo torna-se disponível para ser executado. Figura 4 – Estados de um processo Em execução ProntoBloqueado 2 3 4 1 Fonte: adaptado de Tanenbaum e Bos (2016, p. 64). Segundo Tanenbaum e Bos (2016), na maioria dos sistemas opera- cionais, todas as informações que dizem respeito a um processo, fora o conteúdo do seu próprio espaço de endereçamento, ficam armaze- nadas em uma tabela do sistema operacional, chamada de “tabela de processos”. A tabela de processos nada mais é do que um arranjo de estruturas, uma para cada processo existente no momento. Desse modo, um pro- cesso que está suspenso consiste em seu espaço de endereçamento, em geral, chamado de “imagem do núcleo”, e em sua entrada na tabela de processo, que armazena os conteúdos de seus registradores e mui- tos outros itens necessários para reiniciar o processo mais tarde, quan- do este ganhar tempo de processamento novamente. 126 Conceitos de computação I Ma te ria l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D is tâ nc ia d a Re de S en ac E AD , d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, s ob a s pe na s da L ei . © E di to ra S en ac S ão P au lo . As principais chamadas de um sistema de gerenciamento de pro- cessos são as que lidam com a criação e o término de processos. Para exemplificar, imagine que um usuário acabou de digitar um comando, usando um interpretador de comandos, requisitando que um programa seja compilado. O shell deve criar um novo processo, que vai executar o compilador. Quando o processo terminar a compilação, ele executa uma chamada de sistema para se autofinalizar. Um processo pode criar um ou mais processos (chamados de pro- cessos filhos), e estes também podem criar processos filhos. Assim, chegamos à estrutura da árvore de processos da figura 5. Figura 5 – Árvore de processos A B D E F C Fonte: adaptado de Tanenbaum e Bos (2016, p. 28). A árvore de processos mostra qual processo deu origem a um outro processo filho e quantos processos filhos estão associados a um processo. Outro recurso muito presente nos sistemas operacionais modernos é o “escalonador de processos”. Esse componente tem a função de es- colher qual dos processos concorrentes será o próximo a ganhar tem- po de processamento da CPU. O escalonador faz uso de algoritmos de escalonamento para definir critérios para a seleção. 127Arquitetura de computador – software M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. Para concluir, os processos estão relacionados às mais antigas e im- portantes abstrações que os sistemas operacionais proporcionam. Eles dão suporte à possibilidade de haver operações (pseudo) concorrentes mesmo quando um computador possui apenas uma CPU disponível, tornando uma única CPU em múltiplas CPUs virtuais. A computação moderna não existiria sem a abstração de processo. 1.3 Threads Em sistemas operacionais tradicionais, cada processo tem um es- paço de endereçamento e uma única thread de controle. Conforme aumenta a utilização de subprocessos (também conhecidos como processos filhos), há um desperdício do tempo gasto para a criação e a eliminação deles. Para tentar minimizar esse problema, introduziu- -se o conceito de threads ou linhas de controle (STALLINGS, 2002). Um forte argumento para a existência das threads é que, como elas são mais leves do que os processos, são mais fáceis (isto é, mais rápidas) para criar e destruir do que os processos. Em muitos sistemas, criar uma thread pode ser até cem vezes mais rápido do que criar um processo. Segundo Tanenbaum e Bos (2016), a diferen- ça mais contundente entre subprocessos e encadeamentos é que, enquanto os subprocessos usam espaços de memória protegidos e independentes, os encadeamentos compartilham o mesmo espaço de endereçamento que o processo. Outra razão para a utilização de threads é o fato de o modelo de programação ficar mais simples por sua execução ser quase em pa- ralelo. Assim, em vez de termos interrupções, temporizadores e cha- veamentos de contextos, podemos pensar a respeitode processos em paralelo. Apenas com as threads acrescentamos um novo ele- mento: a capacidade para as entidades em paralelo compartilharem um espaço de endereçamento e todos os seus dados entre si. De 128 Conceitos de computação I Ma te ria l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D is tâ nc ia d a Re de S en ac E AD , d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, s ob a s pe na s da L ei . © E di to ra S en ac S ão P au lo . acordo com Stallings (2002), essa capacidade é essencial para deter- minadas aplicações, já que ter múltiplos processos com espaços de endereçamento separados não funciona. Vamos exemplificar a utilização de threads para uma melhor compreensão. Imagine o acesso de um navegador web a um site. Sabemos que muitas páginas na internet são formadas de imagens e de outros recursos “pesados”, como streaming de vídeos, por exem- plo. Se, para cada item, o navegador tivesse de estabelecer uma co- nexão separada com o servidor, o procedimento seria muito demorado e trabalhoso. Mas, com a utilização de múltiplas threads, é possível fa- zer a requisição de muitas imagens ao mesmo tempo, melhorando o desempenho e a capacidade de resposta (TANENBAUM; BOS, 2016). Na figura 6, podemos identificar processos tradicionais, em que cada processo tem seu próprio espaço de endereçamento e uma única thread de controle. Figura 6 – Threads Processo 1 Processo 2 Processo 3 Núcleo Thread Espaço do usuário Espaço do núcleo { Fonte: adaptado de Tanenbaum e Bos (2016, p. 71). 129Arquitetura de computador – software M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. Já na figura 7, temos a utilização de multithread para um processo. Nesse caso, todos os três processos compartilham o mesmo espaço de endereçamento. Quando um processo multithread é executado em um sistema de CPU única, as threads se revezam executando. Figura 7 – Multithreads Processo Núcleo Thread Espaço do usuário Espaço do núcleo { Fonte: adaptado de Tanenbaum e Bos (2016, p. 71). 2 Aplicativos e utilitários Segundo Tanenbaum e Bos (2016), os verdadeiros clientes dos sis- temas operacionais são os programas de aplicações (aplicativos), por meio de seus programadores. Eles interagem diretamente com as abs- trações fornecidas pela interface do usuário, que podem ser, por exem- plo, linhas de comandos no shell ou uma interface gráfica. Ainda que as abstrações na interface com o usuário sejam similares às abstrações fornecidas pelo sistema operacional, nem sempre esse é o caso. Para esclarecer melhor esse ponto, avalie a área de trabalho normal do sistema operacional Windows e o prompt de comando orien- tado a linhas. Os dois exemplos são programas executados no sistema Windows e usam as abstrações que o Windows oferece, mas eles dis- ponibilizam interfaces de usuário muito diferentes. 130 Conceitos de computação I Ma te ria l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D is tâ nc ia d a Re de S en ac E AD , d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, s ob a s pe na s da L ei . © E di to ra S en ac S ão P au lo . Resumidamente, os aplicativos são programas que têm aplicação prática voltada para o usuário do sistema. São programas que auxiliam o usuário, por exemplo, planilhas, editores de texto e navegadores. Os utilitários, por sua vez, podem ser qualquer programa não obri- gatório para o funcionamento do computador, porém, considerado ex- tremamente útil. De forma sintetizada, podemos descrevê-los como programas que auxiliam o sistema operacional. Como exemplo, pode- mos citar os compactadores de arquivos (WinRAR e WinZip), os anti- vírus (Avast e Norton) e os desfragmentadores de disco. Eles também são fornecidos para ajustar manualmente o relógio do sistema e o de backup e para sincronizá-los. Segundo Tanenbaum e Bos (2016), o SO é o código que executa as chamadas de sistema. Já os editores de texto, compiladores, monta- dores, ligadores (linkers), programas utilitários e interpretadores de co- mandos absolutamente não são considerados como parte do sistema operacional, mesmo que sejam importantes e úteis. Considerações finais Neste capítulo, foi possível entender um pouco mais sobre a arqui- tetura do computador sob a visão do software. Compreendemos um pouco sobre a real função do SO em um computador, os processos que podem gerar subprocessos, ou processos filhos, e os vários tipos de SOs existentes para os diversos dispositivos computacionais disponí- veis atualmente. Analisamos como os processos ganham tempo de CPU e como o SO consegue gerenciar todos os processos que chegam por meio do recurso de escalonamento. Além disso, abordamos sobre as threads e como elas ajudam os processos a serem mais rápidos, e sobre a diferença entre programas aplicativos e programas utilitários, cada um com uma função diferente. 131Arquitetura de computador – software M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. Referências STALLINGS, William. Arquitetura e organização de computadores. 5. ed. São Paulo: Pearson, 2002. TANENBAUM, Andrew S.; BOS, Herbert. Sistemas operacionais modernos. 4. ed. São Paulo: Pearson, 2016. 133 M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. Sobre o autor Maxwel Vitorino da Silva é mestre em Tecnologia pela Faculdade de Tecnologia da Unicamp (FT-Unicamp) (2015-2017), possui gradua- ção em Engenharia de Telecomunicações pela FT-Unicamp (2013-2017) e graduação em Tecnologia em Sistemas de Telecomunicações pela FT-Unicamp (2010-2014). Participou do programa de estágio docente PED nas disciplinas de Probabilidade e Teoria da Informação (TT412) e Cálculo 1 (EB101) na FT-Unicamp. Seu tema de projeto defendido no mestrado foi “Esquemas de quantização do demodulador para comuni- cação óptica pelo espaço livre”, e seu trabalho de conclusão da gradua- ção do curso de Engenharia de Telecomunicações teve como tema o “Desenvolvimento de interfaces de código de linha para um enlace com painel solar receptor”. Atuou como coordenador e professor nos cur- sos de Ciência da Computação e Engenharia de Controle e Automação na Faculdade Anhanguera de Limeira. Como docente, lecionou as dis- ciplinas Matemática Instrumental, Mecânica dos Fluidos, Teoria do Controle Moderno I e II, Modelagem de Sistemas Dinâmicos, Análise e Processamento de Sinais, Robótica, entre outras. Atualmente, leciona no curso de Segurança da Informação na Fatec de Americana e nos cursos de Engenharia da Faculdade Anhanguera de Limeira.
Compartilhar