Prévia do material em texto
Fundamentos de sistemas operacionais Apresentação Os computadores estão cada vez mais presentes no dia a dia das pessoas, auxiliando em diferentes tarefas. De certo modo, é difícil acreditar que há 60 ou 70 anos os computadores estavam dando seus primeiros passos. Desde então, os computadores se tornaram mais complexos, funcionais e cada vez menores, tudo isso pelo avanço da tecnologia. Dessa forma, ficam questões como: o sistema operacional coordena tudo isso? E o que de fato é o sistema operacional? Nesta Unidade de Aprendizagem, você vai descobrir essas respostas, pois irá aprender o conceito de sistema operacional, como ele funciona e como evoluiu até os dias atuais. Bons estudos. Ao final desta Unidade de Aprendizagem, você deve apresentar os seguintes aprendizados: Definir sistema operacional.• Explicar o funcionamento de um sistema operacional.• Relatar a evolução dos sistemas operacionais.• Desafio Os sistemas operacionais permitem a comunicação dos programas com o hardware por meio de uma camada de abstração, a qual repassa os comandos requisitados pelo software ao hardware. Considere a seguinte situação. Você trabalha num projeto de um carro autônomo, na construção de um protótipo que precisa simular os movimentos básicos de um carro, como: virar à direita (90o sentido horário), virar à esquerda (90o sentido anti-horário), acelerar, frear e andar de ré. Cada um desses comandos, para ser executado, precisa de uma sequência de comandos em nível de hardware. Por exemplo, para virar o carro à direita, é necessário rotacionar 45o (em sentido horário) as rodas dianteiras e acionar a aceleração em cada uma rodas. Isso para cada um dos comandos desejados. Além disso, como o projeto pretende que o carro seja autônomo, os comandos de direção não podem ser feitos diretamente no hardware, mas devem ser criadas rotinas para execução de cada comando. Contudo, seu orientador concorda que o uso de rotinas será bom para simplificar os comandos, mas o hardware não entende essas rotinas. Considerando o apresentado, qual solução você pode propor para que o hardware consiga entender as rotinas dos comandos em software? Infográfico Os primeiros computadores eram grandes máquinas de processamento de cálculos matemáticos e científicos. Contudo, as etapas de preparação para o processamento com a entrada dos dados e impressão da saída não eram realizadas pelo computador, mas sim pela atividade humana. A introdução do sistema operacional permitiu uma grande evolução no mundo computacional. Isso se deve à criação de uma camada de software, que é o sistema operacional, responsável pela comunicação e pelo gerenciamento dos dispositivos de hardware, provendo abstrações na forma de software, em que os usuários do computador, por meio dos programas, possam interagir com os recursos do computador. No Infográfico, você vai conhecer como o sistema operacional atua entre os programas de usuário e os componentes do hardware. Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar. https://statics-marketplace.plataforma.grupoa.education/sagah/0275715a-4b1d-425f-baad-b4a759a9c292/7048e54c-c31c-4c94-a9c4-3bf6a8d8cdfc.png Conteúdo do livro Desde o início da computação moderna, o sistema operacional tem sido um elemento crucial para o funcionamento dos sistemas de computadores. Sem ele, a complexidade e diversidade dos sistemas computacionais seriam praticamente impossíveis de serem administradas. Responsável por gerenciar os recursos do hardware, fornecer uma interface para interação com o usuário e garantir a execução adequada dos programas, o sistema operacional desempenha um papel fundamental na operação eficiente e confiável dos dispositivos eletrônicos que utilizamos diariamente. No capítulo Fundamentos de sistemas operacionais, base teórica desta Unidade de Aprendizagem, você conhecerá o que é um sistema operacional, compreendendo suas características e funções. Em seguida, será guiado para entender o funcionamento de um sistema operacional e, por fim, será apresentada a evolução histórica dos sistemas operacionais, desde suas primeiras formas até os sistemas modernos, permitindo uma visão ampla do desenvolvimento dessa área de conhecimento. Boa leitura. SISTEMAS OPERACIONAIS OBJETIVOS DE APRENDIZAGEM > Definir sistema operacional. > Explicar o funcionamento de um sistema operacional. > Relatar a evolução dos sistemas operacionais. Introdução Um sistema operacional é um software que controla e coordena o uso dos recur- sos de hardware e software de um computador ou dispositivo computacional, permitindo a execução de programas e a interação do usuário com o sistema. Tais sistemas são parte essencial não apenas de computadores, mas também de dispositivos móveis e até mesmo de equipamentos menos convencionais, como micro-ondas. Muitas vezes, esses sistemas passam despercebidos pelos usuários, mas desempenham um papel fundamental no gerenciamento dos recursos do aparelho onde se encontram, como memória, processador e dispositivos de entrada e saída. Além disso, proporcionam uma interface amigável e eficiente para que os usuários possam interagir com o computador ou dispositivo de forma intuitiva. Neste capítulo, você vai explorar os fundamentos dos sistemas operacionais. Começaremos com uma definição do que é um sistema operacional e citare- mos exemplos de sistemas operacionais amplamente utilizados. Em seguida, Fundamentos de sistemas operacionais Marcelo da Silva dos Santos abordaremos como um sistema operacional funciona, apresentando as duas visões principais: o sistema operacional como uma máquina estendida e o sistema operacional como gerenciador de recursos. Por fim, discutiremos a evolução dos sistemas operacionais, acompanhando seu histórico desde as primeiras gerações de computadores até os dias atuais. Introdução aos sistemas operacionais Um sistema operacional é um software responsável por gerenciar os re- cursos de hardware do computador e controlar a execução de aplicativos, fornecendo uma interface amigável para o usuário. Seu objetivo principal é fornecer uma plataforma para executar aplicativos de software e gerenciar memória, dispositivos, arquivos, processos, segurança e controle de acesso (STALLINGS, 2013). Existem duas categorias principais de software que podem ser encontradas num computador: software básico e software aplicativo. Um software básico é um conjunto de programas essenciais para o funcionamento do computador, incluindo o sistema operacional, drivers de dispositivo e utilitários de sistema. O sistema operacional é o principal exemplo de software básico, responsável por gerenciar os recursos do computador e fornecer uma interface para que os usuários possam interagir com o sistema. O software aplicativo, por sua vez, é um programa projetado para realizar tarefas específicas, como edição de texto, navegação na web ou reprodução de mídia, e utiliza os recursos fornecidos pelo sistema operacional para funcionar (AMARAL, 2010). A principal diferença entre os dois tipos de software é que o software básico é essencial para o funcionamento do computador, enquanto o software aplicativo é projetado para ser usado pelos usuários para realizar tarefas específicas. Os aplicativos, que são os programas de usuário, são executados em modo usuário, o que implica que não possuem acesso direto a outros recursos ou partes do sistema. A interação e a comunicação entre o programa e o hardware, bem como com outros programas internos que têm acesso direto ao hardware, ocorrem por meio do sistema operacional. O sistema operacional atua como uma camada intermediária, permi- tindo que os aplicativos se comuniquem de maneira segura e eficiente com o hardware e com outros componentes do sistema. As principais funções de um sistema operacional incluem várias funções essenciais para o funcionamento de um computador ou dispositivo, tais como as seguintes (TANENBAUM,2009; OLIVEIRA; CARISSIMI; TOSCANI, 2010). Fundamentos de sistemas operacionais2 � Gerenciamento de recursos: o sistema operacional gerencia os recursos de hardware, como processador, memória RAM, dispositivos de arma- zenamento, interfaces de rede e periféricos, garantindo sua alocação eficiente entre os programas em execução. Ele utiliza chamadas de sistema para solicitar recursos e interrupções de programa para tratar eventos, mantendo o controle e a sincronização do sistema. � Interface com o usuário: o sistema operacional fornece uma interface que permite que os usuários interajam com o computador ou dispositivo em questão. Isso pode incluir interfaces gráficas, linha de comando ou interfaces de toque, dependendo do sistema. Ele também gerencia a entrada e saída de dados, permitindo que os usuários executem programas, acessem arquivos e realizem tarefas. � Execução de aplicativos: o sistema operacional é responsável por car- regar e executar aplicativos no computador, gerenciando a sequência de execução e garantindo o acesso correto aos recursos necessários. Além disso, possibilita o compartilhamento de tempo, para que os aplicativos se alternem no uso da CPU, mas não sejam executados simultaneamente. Em outras palavras, cada processo tem sua fatia de tempo para ser executado na CPU, mas não há execução paralela real de múltiplos processos. No compartilhamento de tempo, o sistema operacional divide o tempo de processamento entre os diferentes processos, de forma a dar a impressão de que estão sendo executados simultaneamente, mesmo que, na verdade, apenas um processo esteja sendo executado a cada momento. � Gerenciamento de arquivos: o sistema operacional fornece um sis- tema de arquivos que permite criar, organizar e manipular arquivos e diretórios. Para isso, controla o acesso aos arquivos, garantindo a integridade e segurança dos dados armazenados. � Gerenciamento de memória: o sistema operacional controla a alocação e o gerenciamento da memória RAM do computador. Ele decide quais partes da memória são atribuídas a cada programa em execução, ge- renciando o espaço disponível e evitando conflitos entre os processos. � Gerenciamento de processos: o sistema operacional controla a criação, o término e o escalonamento de processos. Ademais, garante que os processos sejam executados de forma concorrente e eficiente, geren- ciando a troca de contexto e a distribuição de recursos. Essas são apenas algumas das funções básicas de um sistema operacional. Dependendo do tipo e do propósito de cada, outras funções mais específi- Fundamentos de sistemas operacionais 3 cas podem ser desempenhadas, como gerenciamento de rede, segurança, virtualização, entre outros. Compreender as funções de um sistema operacional é essencial para usar adequadamente um computador e para escolher o sistema mais adequado para as necessidades de cada usuário. Na próxima sessão, serão apresen- tados exemplos mais detalhados dos sistemas operacionais mais comuns, destacando suas principais características e funcionalidades. Exemplos de sistemas operacionais Existem diversos sistemas operacionais disponíveis no mercado, cada qual com suas características e funcionalidades específicas, voltados para dife- rentes aplicações e usos (SILBERSCHATZ; GALVIN; GAGNE, 2010). A seguir, serão apresentados alguns dos sistemas operacionais mais conhecidos e utilizados atualmente. Na Figura 1, você pode observar os logotipos de alguns deles. Figura 1. Logotipos de alguns dos sistemas operacionais mais conhecidos. Fonte: Software... (2022, documento on-line). Windows O Windows é um sistema operacional desenvolvido pela Microsoft e ampla- mente utilizado em computadores pessoais e servidores. É conhecido por sua interface gráfica de usuário intuitiva, que permite que os usuários interajam com o computador de maneira fácil e eficiente, e por sua ampla compatibilidade com software de terceiros, permitindo que os usuários executem uma grande variedade de aplicativos e programas em seus computadores. O Windows foi lançado em 1985 e desde então passou por várias versões e atualizações significativas. A versão mais recente é o Windows 11, lançado em 2021. Trata-se de um sistema operacional popular para uso em compu- Fundamentos de sistemas operacionais4 tadores pessoais e é frequentemente usado para jogos, edição de fotos e vídeos, navegação na web, criação de documentos e muito mais. Além disso, o Windows também é usado em servidores, pois é capaz de executar uma ampla gama de aplicativos dessa área, incluindo bancos de dados, sites e serviços de e-mail. Com sua interface amigável e ampla compatibilidade, o Windows continua sendo uma das escolhas mais populares para usuários de computador em todo o mundo. Linux O Linux é um sistema operacional de código aberto, baseado no kernel do Unix. É altamente configurável e pode ser adaptado para muitas finalidades, desde servidores de internet até dispositivos móveis. O Linux foi criado por Linus Torvalds em 1991 e passou a ser um sistema operacional amplamente utilizado em todo o mundo. O código-fonte do Linux é livre e está disponível para qualquer pessoa fazer modificações e melhorias. É conhecido por sua estabilidade, segurança e desempenho, e é frequentemente usado em servidores web, roteadores, sistemas embarcados, supercomputadores e dispositivos móveis. Existem muitas distribuições de Linux disponíveis, cada qual com sua própria interface gráfica e conjunto- -padrão de aplicativos. Algumas distribuições populares incluem Ubuntu, Debian, Linux Mint, Fedora e Red Hat Enterprise Linux. Uma das principais vantagens do Linux é sua flexibilidade, já que pode ser adaptado para atender às necessidades específicas de uma organização ou usuário individual. Além disso, como é um sistema operacional de código aberto, é possível baixar e modificar o código-fonte para criar uma versão personalizada do sistema operacional. O Linux é frequentemente usado em servidores web, pois é altamente escalável e oferece um alto grau de controle sobre o servidor. Também é conhecido por sua segurança, pois é menos vulnerável a vírus e malware do que outros sistemas operacionais populares. MacOS O MacOS é um sistema operacional desenvolvido pela Apple Inc. É projetado especificamente para os computadores Mac e é conhecido por sua interface intuitiva e recursos avançados de produtividade. O MacOS é um sistema operacional exclusivo para os computadores da Apple, incluindo iMac, MacBook, Mac Mini e Mac Pro. É construído com base em tecnologias de código aberto e é conhecido por sua estabilidade e segurança. O sistema operacional é caracterizado por sua interface de usuário gráfica Fundamentos de sistemas operacionais 5 intuitiva, que se concentra em oferecer eficiência para o usuário por meio da integração de hardware e software. O MacOS é um sistema operacional altamente personalizável e oferece muitos recursos avançados de produtividade. Com seu sistema de arquivos otimizado, seus usuários podem trabalhar de maneira rápida e eficiente com arquivos grandes e complexos. A plataforma também é conhecida por sua compatibilidade com aplicativos de terceiros, oferecendo uma ampla variedade de aplicativos para usuários de todas as áreas de trabalho. Além disso, o sistema operacional oferece uma experiência de usuário excepcio- nalmente agradável, tornando o MacOS uma escolha popular para usuários que valorizam a usabilidade e a eficiência. Android O Android é um sistema operacional móvel desenvolvido pela Google. É utili- zado em smartphones, tablets e outros dispositivos móveis, sendo conhecido por sua flexibilidade e customização. O Android foi lançado em 2008 e desde então se tornou o sistema ope- racional móvel mais popular do mundo, com bilhões de usuários ativos. É conhecido por sua interface altamente customizável, que permite que os usuários personalizem seus dispositivos de acordo com suas preferênciase necessidades. Além disso, o Android oferece uma ampla variedade de aplicativos disponíveis na Google Play Store, desde jogos a aplicativos de produtividade. Uma das maiores vantagens do Android é sua natureza de código aberto, o que significa que os desenvolvedores podem modificar e adaptar o sistema operacional para atender a diferentes necessidades. Isso levou a uma grande variedade de dispositivos Android de diferentes fabricantes, com recursos e preços variados, tornando-o acessível a um público amplo e diverso. O Android também oferece integração com outros serviços do Google, como o Gmail, Google Drive e Google Maps, tornando-o uma escolha popular para usuários que já usam esses serviços. iOS O iOS é um sistema operacional móvel desenvolvido pela Apple Inc. É utilizado em dispositivos móveis da empresa, como iPhones e iPads, sendo conhecido por sua facilidade de uso. Além disso, o iOS é amplamente reconhecido por sua segurança robusta, com recursos como a autenticação biométrica por impressão digital e reconhecimento facial, além de criptografia de dados, o Fundamentos de sistemas operacionais6 que torna os dispositivos iOS ideais para usuários que precisam manter suas informações pessoais e empresariais seguras. O iOS também é amplamente reconhecido por sua vasta biblioteca de aplicativos, muitos dos quais são exclusivos para dispositivos da Apple. A App Store é uma loja on-line de aplicativos que oferece aos usuários uma ampla variedade de jogos, aplicativos de produtividade, redes sociais e outros re- cursos, muitos dos quais são gratuitos. Os aplicativos iOS são conhecidos por sua qualidade e design de primeira linha, muitos dos quais foram premiados em reconhecimento de suas inovações e usabilidade. Além disso, o sistema operacional é altamente integrado com outros serviços da Apple, como o iCloud, o que permite que os usuários sincronizem e acessem seus dados em todos os dispositivos desse fabricante com facilidade. Além destes, ainda há muitos outros sistemas operacionais com dife- rentes finalidades. Exemplos incluem os sistemas operacionais de tempo real, utilizados em sistemas de controle industrial, sistemas operacionais embarcados em dispositivos eletrônicos, sistemas operacionais de rede utilizados em servidores, entre outros. Cada um desses sistemas tem sua própria especificidade e finalidade. Nesta seção, abordamos os conceitos básicos de sistemas operacionais e exploramos os sistemas operacionais mais populares em uso atualmente. Na próxima seção, vamos nos aprofundar no funcionamento dos sistemas operacionais, explorando as visões de tais sistemas como uma máquina estendida e como gerenciadores de recursos. Funcionamento dos sistemas operacionais O funcionamento dos sistemas operacionais é um tópico importante para entender a operação dos computadores e dispositivos móveis. Os sistemas operacionais têm a responsabilidade de gerenciar recursos, oferecer uma interface para o usuário e permitir a execução de aplicativos e programas. Como afirma Andrew Tanenbaum (2009), o objetivo dos sistemas operacionais é facilitar o uso do computador e aumentar sua eficiência. Um sistema operacional pode ser observado sob dois aspectos principais: como uma máquina estendida e como um gerenciador de recursos. Estes dois aspectos são fundamentais para compreender como os sistemas operacionais funcionam e como possibilitam que os computadores e dispositivos móveis cumpram suas tarefas. Na Figura 2, você pode observar como um sistema operacional atua como elo entre os recursos do computador e os usuários (ou outros aplicativos). Fundamentos de sistemas operacionais 7 Figura 2. Sistema operacional como camada de abstração que serve de ligação entre o hardware e os demais sistemas e usuários do computador. Fonte: Adaptada de Oliveira, Carissimi e Toscani (2010). Nesta seção, vamos explorar mais a fundo esses dois aspectos do funciona- mento dos sistemas operacionais. Veremos como eles gerenciam os recursos de hardware e software para garantir o melhor desempenho possível, além de entender como a interface do usuário é projetada e implementada de modo a permitir uma experiência agradável e eficiente para o usuário final. Sistema operacional como uma máquina estendida A visão dos sistemas operacionais como uma máquina estendida é uma forma de entender como eles interagem com o hardware do computador ou disposi- tivo móvel (TANENBAUM; WOODHULL, 2008). Sob essa perspectiva, um sistema operacional é visto como uma camada intermediária entre o hardware do dispositivo e os aplicativos e programas que nele são executados. Essa camada intermediária é responsável por fornecer uma série de serviços e abstrações que permitem que os aplicativos e programas possam se comunicar com o hardware do dispositivo de maneira eficiente e simplificada. Para isso, os sistemas operacionais disponibilizam uma série de recursos para os aplicativos e programas, como acesso a arquivos, dispositivos de Fundamentos de sistemas operacionais8 entrada e saída, gerenciamento de memória, processamento de dados, entre outros. A forma como os sistemas operacionais geram esses recursos é uma das principais características que definem sua arquitetura e sua maneira de funcionar. É nesse sentido que podemos entender os sistemas operacionais como uma espécie de máquina estendida, que expande as funcionalidades e recursos do hardware, permitindo que os aplicativos e programas executem tarefas cada vez mais complexas e exigentes. Sistema operacional como gerenciador de recursos Outra forma de enxergar o funcionamento dos sistemas operacionais é como se fossem gerenciadores de recursos. Nessa perspectiva, um sistema ope- racional é responsável por controlar e coordenar o acesso aos recursos de hardware e software disponíveis em um computador ou dispositivo móvel. O gerenciamento de recursos é essencial para garantir que diferentes programas e aplicativos possam ser executados simultaneamente, sem conflitos ou prejuízos para o desempenho (TANENBAUM; WOODHULL, 2008). De fato, os sistemas operacionais são responsáveis por gerenciar uma variedade de recursos de hardware e software de um computador ou dispo- sitivo móvel. Os recursos de hardware gerenciados incluem: a CPU, que é o processador responsável por executar as instruções dos programas; a memória RAM, que é a memória de acesso aleatório usada para armazenar tempora- riamente dados e instruções de programas em execução; os dispositivos de armazenamento, como discos rígidos e unidades flash, que são usados para armazenar arquivos permanentemente; as interfaces de rede, que permitem a conexão do dispositivo com redes locais e remotas; e as interfaces gráficas, como monitores e impressoras, que permitem a interação do usuário com o sistema (OLIVEIRA; CARISSIMI; TOSCANI, 2010). Um sistema operacional controla recursos de um computador me- diante o processamento de instruções. As etapas do chamado ciclo de instrução incluem a busca de cada instrução na memória, a decodificação da instrução, a busca dos operandos necessários para executar a instrução, a execução da instrução propriamente dita e o armazenamento do resultado de volta na memória ou num registrador. Cada etapa do ciclo de instrução é executada pela CPU num único pulso de clock, permitindo que ela processe várias instruções em sequência (TANENBAUM, 2009). Fundamentos de sistemas operacionais 9 Os recursos de software gerenciados pelos sistemas operacionais incluem: os programas em execução, que são os aplicativos que estão sendo execu- tados pelo usuário; os serviços em segundo plano, que são os programas que executam tarefas em segundo plano, como o serviço de impressão ou o serviço de atualização de software; e os drivers de dispositivos, que são os programas que permitem que o sistema operacional se comunique com os dispositivos de hardware, como a placa de som ou a placa de vídeo. Todos esses recursos são gerenciadospelo sistema operacional para garantir que o desempenho do sistema como um todo não seja comprometido e que os recursos sejam alocados da forma mais eficiente possível. Para gerenciar todos esses recursos, os sistemas operacionais utilizam algoritmos de agendamento de processos, gerenciamento de memória, ge- renciamento de dispositivos, gerenciamento de arquivos e gerenciamento de rede. Esses algoritmos são projetados para garantir que cada programa ou aplicativo tenha acesso aos recursos necessários para sua execução, sem comprometer o desempenho do sistema como um todo (WEBER, 2012). Além disso, os sistemas operacionais também oferecem ferramentas para monitorar e otimizar o uso dos recursos disponíveis, permitindo aos usuários ajustar o desempenho do sistema de acordo com suas necessidades e pre- ferências. A visão do sistema operacional como um gerenciador de recursos é fundamental para entender como os computadores e dispositivos móveis podem ser utilizados de forma eficiente e produtiva. Na próxima sessão, vamos examinar o histórico dos sistemas operacio- nais, que remonta às primeiras gerações de computadores e às diferentes unidades de hardware utilizadas em cada época. Acompanhando a evolução da computação, veremos como os sistemas operacionais se desenvolveram e foram se adaptando às novas demandas e tecnologias. Evolução dos sistemas operacionais O avanço da tecnologia está intimamente ligado à evolução dos sistemas operacionais. Desde os primeiros sistemas até os mais modernos, sua história acompanha o desenvolvimento dos computadores e dispositivos móveis. Com o passar dos anos, os sistemas operacionais se tornaram cada vez mais sofisticados, permitindo a execução de tarefas cada vez mais complexas e o acesso a uma grande variedade de recursos. Nesta seção, vamos explorar a evolução dos sistemas operacionais, desde seus primórdios até os dias de hoje, analisando como as mudanças em hardware, as inovações tecnológicas Fundamentos de sistemas operacionais10 e as demandas dos usuários moldaram o desenvolvimento desses sistemas ao longo do tempo. Histórico dos sistemas operacionais A história evolutiva dos sistemas operacionais é marcada por avanços sig- nificativos na área da computação, visando proporcionar uma experiência avançada e eficiente para os usuários. Essa evolução pode ser dividida em gerações, que estão relacionadas com as mudanças nas unidades de hardware utilizadas nos computadores (TANENBAUM; WOODHULL, 2008). Na primeira geração de computadores, que surgiu nos anos 1950, não existiam sistemas operacionais como os conhecemos hoje. Essa primeira geração foi marcada pelo uso de válvulas e cartões perfurados para entrada de dados. Os programas eram escritos diretamente em linguagem de má- quina e as tarefas eram executadas manualmente. O controle da máquina ficava totalmente nas mãos do programador, que precisava realizar todas as operações necessárias. Na Figura 3, você pode ver uma imagem do ENIAC, um dos principais marcos da computação na época. Figura 3. ENIAC, um dos primeiros computadores com uso de válvulas da história. Fonte: Datamaskinens historie (2018, documento on-line). Fundamentos de sistemas operacionais 11 Com o surgimento da segunda geração de computadores, na década de 1960, os sistemas operacionais de lote foram introduzidos. Essa segunda geração foi marcada pela substituição das válvulas pelos transistores, o que possibilitou a produção de computadores menores e mais rápidos (OLIVEIRA; CARISSIMI; TOSCANI, 2010). Nesse modelo, as tarefas eram agrupadas em lotes e processadas em sequência, o que possibilitava uma utilização mais eficiente dos computadores. Os sistemas operacionais dessa época já eram capazes de controlar o acesso aos dispositivos de entrada e saída, além de realizar multiprogramação, permitindo a execução simultânea de vários programas. Com o avanço para a segunda geração de computadores, surgiram as primeiras linguagens de programação de alto nível, como Fortran e Cobol. Essas linguagens permitiam que os programadores escrevessem códigos mais próximos da linguagem humana, tornando a programação mais acessível e menos propensa a erros, além de permitir reaproveitamento. Os sistemas operacionais dessa época eram projetados para suportar essas linguagens de programação e fornecer recursos adequados para a execução dos programas escritos nelas. A terceira geração, que teve início nos anos 1970, trouxe consigo os sis- temas operacionais de tempo compartilhado. Tais sistemas permitiam que vários usuários interagissem com o computador simultaneamente. O sistema operacional distribuía fatias de tempo para cada usuário, criando a ilusão de que cada um tinha o computador exclusivamente para si. Um exemplo significativo dessa geração foi o sistema operacional Unix, desenvolvido pelos Laboratórios Bell em 1969, que se tornou muito popular em estações de trabalho e servidores de rede. A quarta geração de computadores, que começou na década de 1980, foi marcada pelo surgimento dos computadores pessoais e pelo uso generalizado de redes de computadores. Os sistemas operacionais dessa época evoluíram para permitir o gerenciamento de múltiplos usuários e redes, como Windows NT e Novell NetWare. A interface gráfica do usuário (graphical user interface — GUI) foi um marco importante na evolução dos sistemas operacionais. Ela foi inventada por Doug Engelbart e popularizada por Steve Jobs com o Macintosh. A GUI tornou os computadores mais acessíveis e intuitivos para os usuários. O MS-DOS, desenvolvido pela Microsoft, rapidamente dominou o mercado dos computadores pessoais, fornecendo uma interface de linha de comando sobre o sistema operacional. Atualmente, estamos na quinta geração de computadores, marcada pelo uso de tecnologias como inteligência artificial, computação em nuvem e Fundamentos de sistemas operacionais12 Internet das Coisas (TANENBAUM, 2009). Os sistemas operacionais atuais precisam ser capazes de gerenciar um grande volume de dados e permitir o uso de múltiplos dispositivos conectados em rede. Exemplos de sistemas operacionais dessa geração incluem Windows, macOS e Linux, que são utiliza- dos em diversos dispositivos, desde computadores pessoais até servidores e dispositivos móveis. O Android, por sua vez, é um sistema operacional móvel baseado em Linux, projetado principalmente para smartphones e tablets. Neste capítulo, você teve a oportunidade de conhecer os principais as- pectos relacionados aos sistemas operacionais. Primeiramente, vimos o que é um sistema operacional e como ele funciona, destacando a importância do gerenciamento de recursos. Além disso, apresentamos alguns dos sistemas operacionais mais conhecidos no mercado, além de abordar sua evolução ao longo do tempo, desde as primeiras gerações de computadores até os sistemas modernos utilizados atualmente. Esperamos que o aprendizado adquirido tenha sido de grande contribuição para a sua formação profissional e estimulado sua busca por novos conhecimentos. Referências AMARAL, A. F. F. Arquitetura de computadores: curso técnico em informática. Cola- tina: CEAD/Ifes, 2010. p. 19-20. Disponível em: http://proedu.rnp.br/bitstream/han- dle/123456789/697/Arquitetura_de_Computadores_web.pdf. Acesso em: 18 maio 2023. DATAMASKINENS HISTORIE. In: NDLA. [S. l.: s. n.], 2018. Disponível em: https://ndla. no/subject:1:058bdbdb-aa5a-4a29-88fb-45e664999417/topic:1:002dbe01-f81e-4027- a7fb-b75f4f058bb4/topic:1:23064a27-6653-4f4e-a01b-682ea96d55ae/resource:1:117989. Acesso em: 18 maio 2023. OLIVEIRA, R. S.; CARISSIMI, A. S.; TOSCANI, S. S. Sistemas operacionais. 4. ed. Porto Alegre: Bookman, 2010. SILBERSCHATZ, A.; GALVIN, P. B.; GAGNE, G. Fundamentos de sistemas operacionais. 8. ed. Rio de Janeiro: LTC, 2010. STALLINGS, W. Arquitetura e organização de computadores. 8. ed. São Paulo: Pearson, 2013. SOFTWARE de sistema operacional. In: ELGSCREEN. São Paulo: [S. n.], 2022. Disponívelem: https://blog.elgscreen.com/o-que-e-hardware-e-software/software-de-sistema- -operacional/. Acesso em: 18 maio 2023. TANENBAUM, A. S. Sistemas operacionais modernos. 3. ed. São Paulo: Prentice Hall do Brasil, 2009. TANENBAUM, A.; WOODHULL, A. Sistemas operacionais: projeto e implementação. Porto Alegre: Bookman, 2008. WEBER, R. F. Fundamentos de arquitetura de computadores. 4. ed. Porto Alegre: Book- man, 2012. v. 8. Fundamentos de sistemas operacionais 13 Leitura recomendada DEITEL, H. M.; DEITEL, P. J.; CHOFFNES, D. R. Sistemas operacionais. 3. ed. São Paulo: Prentice Hall do Brasil, 2005. Os links para sites da web fornecidos neste capítulo foram todos testados, e seu funcionamento foi comprovado no momento da publicação do material. No entanto, a rede é extremamente dinâmica; suas páginas estão constantemente mudando de local e conteúdo. Assim, os edito- res declaram não ter qualquer responsabilidade sobre qualidade, precisão ou integralidade das informações referidas em tais links. Fundamentos de sistemas operacionais14 Dica do professor Os sistemas operacionais passaram por uma grande evolução em poucas décadas. Os grandes mainframes presentes em empresas, laboratórios e faculdades tinham muito menos recursos e poder de processamento do que os atuais smartphones. Tudo isso foi possível em virtude de um conjunto de inovações, cada uma em seu período, que permitiram a resolução de um problema existente, por meio da mudança em relação ao que era feito. Um exemplo clássico é a substituição das válvulas pelos transistores, que garantiu maior durabilidade e confiança aos computadores. Acompanhe o vídeo, e você irá acompanhar a evolução dos computadores e dos sistemas operacionais ao longo do tempo. Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar. https://fast.player.liquidplatform.com/pApiv2/embed/cee29914fad5b594d8f5918df1e801fd/46b25d1cd7838f1e9a5e89dcd47b305b Exercícios 1) Os usuários utilizam diversos programas para a realização de suas tarefas no computador. Dependendo da atividade, o programa precisa ler uma entrada que o usuário digitou no teclado; contudo, a leitura do teclado não pode ser feita diretamente pelo programa, precisando comunicar-se com o sistema operacional. A intermediação do sistema operacional é necessária pelo seguinte motivo: A) O programa do usuário roda em modo núcleo e tem acesso à leitura do teclado, mas não sabe comunicar-se com o hardware do teclado. B) O programa do usuário roda em modo núcleo, porém não tem acesso à leitura do teclado e nem sabe comunicar-se com o hardware do teclado. C) O programa do usuário roda em modo usuário, não tem nenhuma permissão ou acesso a recursos, exceto por meio do sistema operacional. D) O programa do usuário roda em modo usuário e tem permissão para acessar diretamente a leitura do teclado, contudo fazer pelo sistema operacional é mais eficiente. E) O programa do usuário roda em modo usuário e precisa ser programado para acessar diretamente o hardware do teclado. 2) Em algumas tarefas, o programa precisa comunicar-se com o sistema operacional para utilização de algum recurso. Essa solicitação enviada pelo programa ao sistema operacional é chamada de: A) rotina de execução. B) chamada de sistema. C) bloqueio do programa. D) chamada de E/S. E) interrupção de programa. Nos primeiros computadores, a programação era feita de modo mecânico, por meio de chaves e interruptores, para a inserção bit a bit dos programas. A criação das linguagens de 3) montagem facilitou muito a programação, pois: A) permitiu que os computadores entendessem a linguagem natural. B) possibilitou usar comandos em linguagem de programação alto nível. C) reduziu a quantidade de bits para criar os programas. D) definiu comandos derivados do inglês que eram traduzidos para binário, permitindo o reaproveitamento. E) registrou comandos pré-prontos na memória do computador. 4) A multiprogramação foi uma técnica muito importante introduzida pelos sistemas operacionais de terceira geração. Assinale a alternativa que mostra um exemplo de estratégia de multiprogramação apresentado pelos sistemas dessa geração: A) A execução paralela entre os vários núcleos do processador. B) A divisão da memória entre os programas e o sistema operacional simultaneamente. C) A implementação de threads em nível de usuário. D) A implementação de threads em nível de núcleo. E) A interrupção preemptiva do relógio. 5) Dentre as principais funcionalidades obtidas com a evolução dos sistemas operacionais, o compartilhamento de tempo entre diferentes usuários permite: A) acessar um recurso simultaneamente a outros processos. B) executar processos em paralelo. C) compartilhar a utilização da unidade de processamento entre os usuários ativos. D) a liberação de tempo para outros processos. E) o fatiamento do tempo de processamento para cada processo. Na prática Cada vez mais os computadores estão presentes no dia a dia, e, consequentemente, os sistemas operacionais também. Em diversas tarefas que são executadas nos programas, raramente é possível perceber o importante papel do sistema operacional na comunicação do software como o hardware, facilitando as tarefas do usuários (pessoas e programas também). Neste Na Prática, você vai conhecer uma situação simples da utilização do sistema operacional na programação. Conteúdo interativo disponível na plataforma de ensino! Saiba + Para ampliar o seu conhecimento a respeito desse assunto, veja abaixo as sugestões do professor: Conceitos de sistemas operacionais Nesta videoaula da Univesp TV você poderá rever e complementar o conteúdo quanto à definição de um sistema operacional, como ele funciona e sua evolução histórica. Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar. A história dos sistemas operacionais Neste artigo você poderá conhecer um pouco mais em detalhes a evolução dos sistemas operacionais até os dias de hoje. Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar. O que é Linux e qual a sua história? Neste artigo você poderá conhecer mais sobre os sistemas operacionais baseados em Linux e um pouco da sua história. Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar. https://www.youtube.com/embed/CCHZ_06DoEA https://www.tecmundo.com.br/sistema-operacional/2031-a-historia-dos-sistemas-operacionais-ilustracao-.htm https://www.infowester.com/historia_linux.php