Prévia do material em texto
SISTEMAS OPERACIONAIS Renato C. Matthiesen EAD Editora Universitária Adventista Presidente da Divisão Sul-Americana: Stanley Arco Diretor do Departamento de Educação para a Divisão Sul-Americana: Antônio Marcos da Silva Alves Presidente do Instituto Adventista de Ensino (IAE), mantenedora do Unasp: Maurício Lima Reitor: Martin Kuhn Vice-reitor para a Educação Básica e Diretor do Campus Hortolândia: Henrique Karru Romaneli Vice-reitor para a Educação Superior e Diretor do Campus São Paulo: Afonso Ligório Cardoso Vice-reitor administrativo: Telson Bombassaro Vargas Pró-reitor de pesquisa e desenvolvimento institucional: Allan Macedo de Novaes Pró-reitor de graduação: Edilei Rodrigues de Lames Pró-reitor de pós-graduação lato sensu e Pró-reitor da educação à distância: Fabiano Leichsenring Silva Pró-reitor de desenvolvimento espiritual e comunitário: Wendel Tomas Lima Pró-reitor de Desenvolvimento Estudantil e Diretor do Campus Engenheiro Coelho: Carlos Alberto Ferri Pró-reitor de Gestão Integrada: Claudio Valdir Knoener Conselho editorial e artístico: Dr. Adolfo Suárez; Dr. Afonso Cardoso; Dr. Allan Novaes; Me. Diogo Cavalcanti; Dr. Douglas Menslin; Pr. Eber Liesse; Me. Edilson Valiante; Dr. Fabiano Leichsenring, Dr. Fabio Alfieri; Pr. Gilberto Damasceno; Dra. Gildene Silva; Pr. Henrique Gonçalves; Pr. José Prudêncio Júnior; Pr. Luis Strumiello; Dr. Martin Kuhn; Dr. Reinaldo Siqueira; Dr. Rodrigo Follis; Me. Telson Vargas Editor-chefe: Allan Macedo de Novaes Supervisora Administrativa: Rhayane Storch Responsável editorial pelo EaD: Jéssica Lisboa Pereira SISTEMAS OPERACIONAIS 1ª Edição, 2023 Editora Universitária Adventista Engenheiro Coelho, SP Renato Cividini Matthiesen Mestre em Ciências da Computação pela Universidade Metodosta de Piracicaba Marques, Pâmela Caroline Costa Ferramentas de produtividade e gestão do tempo [livro eletrônico] / Pâmela Caroline Costa Marques. -- 1. ed. -- Engenheiro Coelho, SP : Unaspress, 2022. PDF Bibliografia. ISBN 978-65-5405-041-8 1. Administração 2. Gestão de negócios 3. Produtividade 4. Tempo - Administração I. Título. 22-134421 CDD-650.1 Dados Internacionais de Catalogação na Publicação (CIP) (Câmara Brasileira do Livro, SP, Brasil) Índices para catálogo sistemático: 1. Tempo : Produtividade : Administração 650.1 Eliete Marques da Silva - Bibliotecária - CRB-8/9380 Sistemas operaionais 1ª edição – 2023 e-book (pdf) OP 00123 Coordenação editorial: Luciana Lima Preparação: Luciana Lima Projeto gráfico: Ana Paula Pirani Capa: Jonathas Sant’Ana Diagramação: Kenny Zukowski Caixa Postal 88 – Reitoria Unasp Engenheiro Coelho, SP – CEP 13448-900 Tel.: (19) 3858-5171 / 3858-5172 www.unaspress.com.br Editora Universitária Adventista Validação editorial científica ad hoc: Felipe de Souza Oliveira Metre me Letras pela Universidade Federal de São João del-Rei Editora associada: Todos os direitos reservados à Unaspress - Editora Universitária Adventista. Proibida a reprodução por quaisquer meios, sem prévia autorização escrita da editora, salvo em breves citações, com indicação da fonte. SUMÁRIO FUNÇÕES BÁSICAS E ESTRUTURA DE UM SISTEMA OPERACIONAL ......................................................9 Introdução ..................................................................................................................10 Evolução histórica de hardware, software e dos sistemas operacionais .......................10 Breve histórico da evolução da computação pessoal ............................................11 Gerações dos computadores ................................................................................12 Evolução dos sistemas operacionais ....................................................................13 Conceito e funções básicas de um sistema operacional ...............................................15 Funções básicas do sistema operacional ..............................................................16 Conceito de hardware e software ........................................................................18 Arquitetura de processamento em sistemas operacionais ...................................21 Tipos de sistemas operacionais ...................................................................................22 Estrutura de um sistema operacional ..........................................................................27 Funções do núcleo ...............................................................................................27 Modo de acesso ...................................................................................................29 Rotinas do sistema operacional e system calls .....................................................29 Linguagem de comandos ....................................................................................30 Arquiteturas de Sistemas Operacionais ................................................................31 Considerações finais ...................................................................................................32 Referências .................................................................................................................33 Arquiteturas de Sistemas Operacionais ................................................................31 Considerações finais ...................................................................................................32 Referências .................................................................................................................33 VO CÊ ES TÁ A QU I GERENCIAMENTO DO PROCESSADOR E GERENCIAMENTO DE MEMÓRIA ..................................................34 Introdução ..................................................................................................................35 Processos e Threads .....................................................................................................35 Concorrência ........................................................................................................36 Processos .............................................................................................................38 Threads ...............................................................................................................43 Sincronização e comunicação entre processos .............................................................46 Exclusão Mútua ...................................................................................................47 Semáforos ...........................................................................................................48 Monitores ............................................................................................................49 Troca de mensagens ............................................................................................50 Deadlock .............................................................................................................50 Gerência do processador .............................................................................................51 Gerência de memória ..........................................................................................55 Gerência de memória virtual ...............................................................................59 Considerações finais ...................................................................................................64 Resumo .......................................................................................................................64 Referências .................................................................................................................65 SISTEMAS DE ARQUIVOS E GERENCIAMENTO DE DISPOSITIVOS...............................................66 Introdução ..................................................................................................................67Arquivos e diretórios ...................................................................................................67 Arquivos ..............................................................................................................67 Diretórios.............................................................................................................71 Gerência de espaço, alocação e proteção de acesso .....................................................74 Alocação de arquivos ...........................................................................................74 Proteção de acesso ..............................................................................................76 Caches .................................................................................................................77 Gerência de dispositivos ..............................................................................................77 Subsistema de entrada e saída ............................................................................77 Device Driver .......................................................................................................78 Controlador de entrada e saída ............................................................................79 Dispositivos de entrada e saída ............................................................................81 Gerência de armazenamento e interface com o usuário ..............................................81 Sistemas de arquivos ...........................................................................................82 Dispositivos de armazenamento de dados ...........................................................83 Dispositivos de interface com o usuário ...............................................................89 Considerações finais ...................................................................................................94 Referências .................................................................................................................94 SISTEMAS OPERACIONAIS COM MÚLTIPLOS PROCESSADORES E SEGURANÇA ....................................................96 Introdução ..................................................................................................................97 Virtualização e nuvem .................................................................................................97 Exigências para virtualização ..............................................................................99 Tipos de hipervisores ...........................................................................................99 Máquinas virtuais em CPUs com múltiplos núcleos ............................................101 Nuvem ................................................................................................................102 Sistemas operacionais com múltiplos processadores ..................................................104 Vantagens e desvantagens .................................................................................106 Tipos de Sistemas Computacionais .....................................................................106 Sistemas operacionais de rede e sistemas distribuídos ...............................................113 Sistemas Operacionais de Rede ..........................................................................113 Sistemas Distribuídos .........................................................................................116 Modelos de segurança em sistemas operacionais ......................................................117 Ameaças e ataques .............................................................................................119 Ações necessárias para garantir a segurança em sistemas de informação ..........120 Implementação de sistemas e recursos para segurança......................................121 Considerações finais ...................................................................................................123 Referências ................................................................................................................123 EMENTA Tecnologia em análise e desenvolvimento de sistemas Gramática básica da língua inglesa. Desenvolvimento de vocabulário em textos técnicos e de divulgação. Tradução de textos técnicos e de divulgação. Tecnologia em gestão da tecnologia da informação Compreender e produzir textos em inglês; apresentar-se e fornecer informações pessoais e cooperativas; conhecer os principais termos técnicos da informática em inglês. UNIDADE 1 FUNÇÕES BÁSICAS E ESTRUTURA DE UM SISTEMA OPERACIONAL 10 FUNçõEs básICAs E EsTrUTUrA DE Um sIsTEmA opErACIoNAl SISTEMAS OPERACIONAIS INTRODUÇÃO A evolução dos sistemas operacionais está totalmente relacionada com a evolução ou ainda revo- lução dos computadores pessoais, desenvolvidos a partir dos anos 1980. Com a computação sendo dis- seminada mediante o uso do computador pessoal nos anos 1980, da intensificação do uso de sistemas distribuídos via infraestrutura da internet a partir da segunda metade da década de 1990 e do advento da computação móvel a partir dos anos 2000, os sistemas operacionais também tiveram uma explosão em suas tecnologias e arquiteturas para poder abranger todos estes dispositivos. com isso, vamos fazer uma breve análise da evolução histórica de hardware, software e dos sistemas operacionais, passando pela geração dos computadores e pela evolução dos próprios sistemas operacio- nais. Seguimos com o conceito, as funções básicas de um sistema operacional e arquitetura de sistemas operacionais. Mais adiante, veremos diferentes tipos de sistemas operacionais e, por fim, estudaremos a estrutura de um sistema operacional. Os objetivos desta unidade são os seguintes:· • Conhecer as funções básicas, as camadas e os tipos de Sistemas Operacionais para computado- res pessoais e dispositivos móveis. • Compreender a estrutura de um Sistema Operacional através das funções de núcleo, modo de acesso, rotinas e arquitetura. Bom estudo! EVOLUÇÃO HISTÓRICA DE HARDWARE, SOFTWARE E DOS SISTEMAS OPERACIONAIS A tecnologia e os sistemas de informação representam um contexto moderno de ferramentas que auxiliam o ser humano no desenvolvimento e na gestão de suas atividades cotidianas. Em uma análise sobre a evolução histórica das tecnologias, pode-se perceber que desde 40.000 a.C. o homem já fazia uso de recursos tecnológicos disponíveis em cada época para administrar suas atividades e realizar comunicação através de registros em cascas de árvores, paredes de cavernas dentre outros recur- sos disponíveis. A contabilidade de suas pequenas criações de animais já podia ser percebida quando na gestão realizada com o apoio de pedras, chamadas no passado de calculus ou mesmo os próprios dedos das mãos, chamados de digitus. A tecnologia está relacionada ao conjunto de processos, métodos, técnicas e ferramentas relativo à arte, indústria, educação etc. Na organização da vida em sociedade, diversos dispositivos foram cons- truídos e adaptados para as necessidades de administrar as atividades do ser humano e dar significado à informação que, conforme Hoelz (2015, p. 3), “é toda mensagem que possui significado ao ser transmitida”. 11 FUNçõEs básICAs E EsTrUTUrA DE Um sIsTEmA opErACIoNAl SISTEMAS OPERACIONAIS BREVE HISTÓRICO DA EVOLUÇÃO DA COMPUTAÇÃO PESSOAL Quanto à evolução tecnológica, temos uma classificação dos dis- positivos computacionais organizada em três épocas conforme relata Monteiro (2007). A primeira época foi caracterizada pelos Dispositivos Mecânicos (500 a.C.-1880), a segunda pelos Dispositivos Eletromecâni- cos (1880-1930) e a terceira pelos Componentes Eletrônicos (1945), com o desenvolvimento dos primeiros computadores eletrônicos micropro- cessados. Já Tanenbaum (2013) classifica a tecnologia no contexto da computação em gerações de computadores: GeraçãoZero, caracterizada pelos computadores mecânicos (1642-1945); a Primeira Geração, que traz os computadores valvulados (1945-1955); a Segunda Geração, baseada nos computadores transistorizados (1955-1965); a Terceira Geração, ba- seada em computadores com circuitos integrados (1965-1980); a Quarta Geração, em que houve a integração de circuitos em larga escala (1980); e a Quinta Geração, caracterizada pelo termo de computadores invisíveis, que faz alusão ao termo ubíquo ou pervasivo. As principais realizações da arquitetura e da organização de compu- tadores podem ser resumidas na criação da Máquina Analítica, por Char- les Babbage em 1834, considerado o primeiro computador digital com unidades de entrada, processamento e saída. Em 1890, Herman Hollerith inventa um tabulador que utilizava impulsos elétricos para transmissão de dados e registro em cartões, relata Tanenbaum (2013). O Colossus, de 1943, foi considerado o primeiro computador eletrônico, e o Electronic Numerical Integrator and Computer (ENIAC), de 1946, criado por Eckert e Mauchly, reconhecido como o primeiro computador eletrônico da histó- ria moderna da computação. Estas máquinas utilizavam conceitos do ma- temático Alan Turing, mais tarde considerado o patriarca da computação. Já nas décadas de 1960 e 1970 diversos e novos dispositivos foram cria- dos já por empresas que acabaram por desenvolver os primeiros sistemas computacionais comerciais como a Digital Equipment Corporation (DEC), International Business Machines (IBM), Burroughs, Control Data Corpora- tion (CDC) e Cray, o que levou a sociedade a reconhecer uma nova in- dústria de computadores. Um marco importante foi a criação do circuito integrado (processador) 8080 em 1974, utilizado no primeiro computador de uso geral de 8 bits em um chip. O IBM PC (Personal Computer) é desenvolvido em 1981 e dá início à era da computação pessoal, seguido pelo Apple Lisa, que introduziu uma interfa- ce gráfica para interação com o usuário e representou grande diferencial na computação pessoal da época. Ainda na década de 1980, tivemos a criação dos discos rígidos ou HD (Hard Drive), o MS-DOS (Microsoft Disc Operation System), o protocolo TCP/IP (Transmission Control Protocol/Internet Proto- col), o Macintosh, o processador Inter 386, o Motorola 68040. A década de 1990 foi marcada pela criação do Windows 3.0, da WWW (World Wide Web), do Linux, Mosaic, Java, Pentium, Netscape entre outras tecnologias que trou- xeram a nova era digital para a vida de todos nós. Computador pessoal com um sis- tema operacional carregado para realizar a interface com o usuário. Fonte: Unsplash 12 FUNçõEs básICAs E EsTrUTUrA DE Um sIsTEmA opErACIoNAl SISTEMAS OPERACIONAIS A partir dos anos 2000 houve evoluções mais expressivas na miniaturização e no aumento do poder de processamento dos dispositivos, assim como a integração de sistemas de gestão e sua distribuição glo- bal por meio da internet, presente em praticamente todos os dispositivos e em negócios aplicados a todas as áreas do conhecimento. GERAÇÕES DOS COMPUTADORES Tecnologia da Informação (TI) e Sistemas de Informação (SI) são conceitos modernos que remetem ao uso de sistemas computadorizados através de dispositivos eletrônicos que buscam automatizar as ati- vidades do ser humano. O desenvolvimento da computação pessoal e da internet, os negócios e a vida em sociedade passaram a realizar suas atividades dentro de ambientes digitais. Caiçara Junior (2012) defende que a utilização de sistemas de informação nas organizações tornou-se uma condição de sobrevivência a partir dos anos 1990. A tecnologia e os sistemas estão presentes em grande parte das atividades das pes- soas há mais de 60 anos, se considerarmos aqui o contexto da tecnologia digital. Mas, vejamos um pouco mais sobre as gerações dos computadores e a evolução do hardware, soft- ware e naturalmente dos sistemas operacionais que controlam estes dispositivos. Primeira Geração dos computadores: caracterizada pelos computadores operacionalizados por vál- vulas termiônicas (1945-1955), teve início com a invenção da válvula tríodo, em 1906, por Lee de Forest, o que fez a tecnologia da informação surgir e suportar o rádio, a televisão e os primeiros grandes computa- dores como o Mark1, o Colossus, e o Eletronic Numerical Integrator and Computer (ENIAC). Por outro lado, havia também interesses militares na década de 1920 e 1930, que motivaram a construção do Enigma, uma máquina desenvolvida para criptografia em tempos de guerra. O ENIAC foi considerado como o primeiro computador eletrônico e digital do mundo projetado por John Mauchly e John Eckert, dentre os anos de 1943 e 1946, funcionando até o ano de 1955. Era uma máquina com mais de 18.000 válvulas e 800 quilôme- tros de cabos, com mais de 30 toneladas. Em 1953, a IBM lançou o IBM-701, voltado para o processamento científico, que teve outras versões evolutivas lançadas no mercado, como o IBM-709 lançado em 1958 e que colocou a IBM como referência no mercado de computadores, finalizando a primeira geração dos com- putadores baseados em válvulas termiônicas (ou tríodo). Segunda Geração dos computadores: o transistor foi o elemento que caracterizou a segunda gera- ção dos computadores (1955-1965). Segundo Tanenbaum (2013), o transistor foi inventado no Bell Labs, em 1948, por John Bardeen, Walter Brattain e Willian Shockley, pelo qual receberam o Prêmio Nobel de física em 1956. Em 1964, surge uma nova empresa chamada de CDC (Control Data Corporation) que lan- çou um computador chamado de 6600, superior aos seus concorrentes da IBM. E o segredo do 6600 era a utilização do paralelismo pela CPU (Central Processing Unit). Entre outros destaques da época, havia o Bur- roughs B5000, com programação em uma nova linguagem chamada de Algol que foi uma das linguagens que deram origem a linguagem C e a linguagem Java. Terceira Geração dos computadores: teve início com o desenvolvimento do Circuito Integrado pela necessidade de se encontrar uma solução para os problemas de acomodação dos componentes eletrôni- cos (transistores, capacitores e resistores) nos equipamentos à medida que sua quantidade aumentava, re- lata Monteiro (2007, p. 17). Seu período representou um novo momento da computação microprocessada (1965-1980) que possibilitou também maior desenvolvimento dos computadores pessoais. Quarta Geração dos computadores: os computadores passaram a ter tamanhos menores, o que os tornou comerciais para um público que não pertencia a grandes empresas, universidades ou centros de pesquisa. A quarta geração de computadores, a partir de 1980, trouxe o desenvolvimento do conceito 13 FUNçõEs básICAs E EsTrUTUrA DE Um sIsTEmA opErACIoNAl SISTEMAS OPERACIONAIS de LSI (Large Scale Integration), elevando ainda mais o volume de dispositivos eletrônicos inseridos em pequenos chips. Com estas novas possibilidades, em 1964, a IBM lança a sua mais famosa família de com- putadores com a série 360. Em 1971, a Intel Corporation produziu o Intel-4004, considerado a primeira UCP (Unidade Central de Processamento) e, logo em 1973, lançou o Intel-8080, que se tornou um grande sucesso comercial e posicionou a empresa como líder na produção de microprocessadores. Diversos com- putadores passaram a ser apresentados ao mercado como o Altair, vendido em 1975, mas ainda sem uma interface interessante para o usuário. Outros computadores foram o Apple I, em 1976, o Apple II, em 1977, o VAX 11, em 1978. Quinta geração e outras novas ainda indefinidas: a computação pessoal tornou-se um marco na reformu- lação de hábitos da vida das empresas e das pessoas. O final dos anos 1980 trouxe o Floppy Disk e o protocolo TCP/IP, que abriu as portas do mundo com a popularização da internet. Tivemos, ainda, o Intel 486 que trouxe novas capacidades de processamento para os computadores pessoais. No início dos anos 1990, a interface gráfi- ca oferecida pelo Microsoft Windows 3.0 e a WWW (World Wide Web), vista por meio de um navegadorchamado de Mosaic, contribuíram para tornar a computação pessoal definitivamente um desejo de todos. Adicionalmen- te, entraram no mercado novos e potentes computadores pessoais como o Power PC e a linha Pentium da Intel. Em 1993, a Apple lança o Newton, primeiro PDA (Personal Digital Assistants), que não obteve sucesso, mas foi importante para o desenvolvimento de outro aparelho que se tornaria revolucionário, posteriormente, o iPhone. Mas a evolução tecnológica não pararia. O ano de 2000 vivenciaria ainda o lançamento de processadores Pen- tium III e AMD Athlon, com capacidades acima de 1 GHz de processamento, o Windows XP e o iPod, entre outros. Logo em seguida, surgem os processadores com múltiplos núcleos incrementando a programação concorrente e a potência de processamento dos computadores pessoais. Atualmente, diversos dispositivos móveis como tablets e smartphones também são massivamente utilizados para realizar a computação e a comunicação deste novo século. Sistemas operacionais foram desenvolvidos para que estes dispositivos possam levar os dados e as informações a qualquer lugar. Ta- nenbaum e Bos (2016) nos ensinam que os PDA (Personal Digital Assistant) e os smartphones passaram a ser uma importante tecnologia para o desenvolvimento de sistemas operacionais a partir dos anos 1990. O presente e o futuro ainda revelam uma imensidão de dispositivos micro processados e munidos com sen- sores que coletam e distribuem dados por toda a parte, os chamados Internet das Coisas, ou IoT (Internet of Things). Neste novo cenário previsto por Tanenbaum (2013), a computação pervasiva leva a computação ao conceito de computação ubíqua. EVOLUÇÃO DOS SISTEMAS OPERACIONAIS A evolução dos sistemas operacionais está profundamente relacionada com a própria evolução dos sistemas computacionais e com a geração dos computadores. Vejamos algumas informações importantes na tabela abaixo realizadas antes da década de 1940, momento do desenvolvimento mais intenso de siste- mas eletroeletrônicos. 1642: o matemático francês Blaise Pascal inventou uma máquina de somar para auxiliar seu pai no processamento de arrecadação e impostos. 1673: o matemático e filósofo Gottfried Leibniz criou uma máquina capaz de somar e multiplicar, utilizando o conceito de acumulador. 1820: Charles Colmar inventa uma máquina capaz de executar as quatro operações da matemática. 1833: Charles Babbage criou a máquina Analítica, que possibilizava realizar qualquer tipo de operação matemática. 14 FUNçõEs básICAs E EsTrUTUrA DE Um sIsTEmA opErACIoNAl SISTEMAS OPERACIONAIS 1854: George Boole cria a lógica booleana, base para o modelo de computação digital até os dias atuais. 1896: fundada a Tabulating Machine Company, que se tornou em 1924 a International Business Machine, ou IBM. 1937: Alan Turing desenvolveu a ideia de Máquina Universal ou Máquina de Turing, para executar qualquer sequência de instruções (chamadas de algoritmos). Fonte: Timetoast (2024). Vejamos então o desenvolvimento dos sistemas operacionais a partir dos anos 1940: • 1940: Alan Turing cria uma máquina chamada de Colossus para decifrar o código das mensagens alemãs durante a Segunda Guerra Mundial. Construído o ENIAC (Eletronic Numerical Integrator And Calculator). Mas foi somente em 1949 que o conceito de programa armazenado foi desenvolvido na Universidade de Cambridge, na Inglaterra, chamado de EDSAC (Eletronic Delay Storage Automatic Calculator) dando origem ao conceito de sistema operacional (Timetoast, 2024). • 1950: criada a primeira empresa de computadores chamada de Eckert-Mauchly computer Corp. (EMCC). O primeiro sistema operacional, chamado de monitor por sua simplicidade, foi desenvolvi- do em 1953 pelos usuários do computador IBM 701 do centro de Pesquisas da General Motors, para tentar automatizar tarefas manuais. Este sistema evoluiu para uma nova versão junto com o com- putador IBM 704. E seguida, são criadas linguagens de programação de alto nível, como o COBOL, Algol e Fortran, acompanhadas de uma maior evolução dos sistemas operacionais, que começavam a incorporara rotinas para operações de Entrada e Saída, que criou independência de dispositivos nos sistemas chamados de SOS (Share Operating Systems), FMS (Fortran Monitor System) e IBSYS, utilizados em computadores da IBM. No final da década, a Universidade de Manchester desenvolveu o sistema operacional Atlas, que introduziu a memória hierarquizada, base do conceito de memória virtual utilizada até os dias de hoje (Timetoast, 2024). • 1960: novos sistemas operacionais tiveram a introdução do conceito de multiprogramação que permitiu que vários programas compartilhassem a memória ao mesmo tempo. Com este recurso, enquanto um programa esperava por uma operação de leitura/gravação, o processador executava outro programa. Em 1963 a Burroughs lança o computador B-5000 com o sistemaperacional Master Control Program (MCP), com multiprogramação, memória virtual com segmentação e multiproces- samento assimétrico. Em seguida, é projetado o CDC 6600. Em 1964 a IBM lançou o System/360 com o sistema operacional chamado de OS/360. Em 1965 o MIT, a Bel Labs e a General Eletric suportaram o desenvolvimento do sistema operacional MULTICS (Multiplexed Information and Computing Service). Criação do UNIX e lançamento em 1969 como primeiro sistema operacional portável, com multitarefas, multiusuário e recursos de rede (Timetoast, 2024). • 1970: com a evolução dos microprocessadores surgem novas empresas, como a Apple e a Mi- crosoft e com elas o sistema operacional CP/M (Control Program Monitor) da Digital Research. Logo em seguida. A década de 1970 trouxe uma importante evolução nos sistemas operacio- nais, agora vistos como importantes componentes para os novos formatos de computadores que vinham sendo idealizados. Foram desenvolvidos o UNIX em novas versões, o BSD, o Apple DOS e o Atari DOS, por exemplo. • 1980: IBM entra no mercado de computadores pessoais com o IBM PC (Personal Computer) munido com o recém-criado MS-DOS (Microsoft Disk Operation System). A universidade de Berkeley cria sua versão do UNIX, chamado de BSD (Berkeley Software Distribution). Em 1982 é fundada a Sun Microsystems e o sistema operacional SunOS, que evoluiu para o Sun Solaris. Surgem os primeiros 15 FUNçõEs básICAs E EsTrUTUrA DE Um sIsTEmA opErACIoNAl SISTEMAS OPERACIONAIS sistemas operacionais comerciais com interface gráfica como o Microsoft Windows e o OS/2. A década e 1980 ainda conheceria o Xenix, usado nos computadores Zilog Z8000, 86-DOS ou Q-DOS, desenvolvido para o Intel 8086, o Apple ProDOS, Lisa OS, HP-UX, AmigaOS e em 1985 o Windows 1.0 e depois o Windows 2.0. Foi nesta década também que o professor Andrew Tanenbaum desenvol- veu o MINIX, que serviu como inspiração para o desenvolvimento do Linux mais tarde. • 1990: incialmente, em 1990 a Microsoft desenvolveu e lançou o Windows 3.0, intensificando o uso de interfaces gráficas. Em 1991, Linus Torvalds apresenta o Linux ao mundo, como uma alternativa para usuários de computadores pessoais ao UNIX, destinado apenas a computado- res de grande porte e que alcançaria mais de 10 milhões de usuários em 1999. Ainda em 1991 foram criados o System 7 da Apple e o BeOS. Logo em 1992 a Microsoft lança o Windows 3.1 com suporte para execução e arquivos multimídia e depois, em 1995, o Microsoft Windows 95 dá um novo passo em relação à popularização de interface gráfica preemptiva para compu- tadores pessoais (modelo de interface orientada a ícones e imagens gráficas que auxiliam o usuário a fazer escolhas e na interação com sistema de forma assistida), e a linguagem Java se torna conhecida. Em seguida, o mercado conhece o Pentium Pro da Intel, o Netscape Navigator 2.0 e o Deep Blue da IBM. Diversas distribuições do Linux começam a ser desenvolvidas como o Debian GNU/Linux, o FreeBSD e NetBSD, Slackware, SUSE, o Red Hat dentre outras. • 2000: já no ano de 2000 a Microsoft lançou o Windows 2000 (chamado tambémde Windows NT 5.0), que suportava o NTFS 3.0. Em 2001 é lançado o Windows XP, o Mac OS X e diversas versões evolutivas e o Windows ME. Em 2006 é lançado o Windows Vista. Em setembro de 2008 chega ao mercado o sistema operacional Android, para dispositivos móveis, sistema que movimentou e re- volucionou a área de sistemas operacionais. Nesta década foram também desenvolvidos o Linux Gentoo, Linux Fedora e Linux Ubuntu. A Apple lança em 2007 o iOS juntamente com o iPhone, um novo dispositivo que veio a revolucionar a computação dos dias modernos • 2010: A Microsoft também desenvolve o Windows Phone, para entrar no mercado de sistemas operacionais para smartphones e lançou também o Windows ME. O Windows 10 é lançado no ano de 2015 com mudanças nos tradicionais componentes do sistema operacional da Micro- soft. A Google desenvolve e lança o Chrome OS para dispositivos X86 e ARM e com código aberto, são desenvolvidos o Ubuntu Touch para smartphones e tabletes e o Firefox OS. Outros sistemas operacionais ainda foram desenvolvidos: Xbox OS, Orbis OS. CONCEITO E FUNÇÕES BÁSICAS DE UM SISTEMA OPERACIONAL Os termos dado e informação podem ser tratados como sinônimos ou ainda como termos distintos. Conceitualmente um dado é visto como a matéria-prima da computação, originalmente obtida por uma ou mais fontes em etapa de coleta, e a informação com o resultado do processamento destes dados. Monteiro (2007, p. 1) nos ensina que “um computador é uma máquina (conjunto de partes eletrônicas e eletromecâ- nicas) capaz de sistematicamente coletar, manipular e fornecer os resultados da manipulação de informa- ções para um ou mais objetivos”. Na interpretação e análise de um dado ou ainda de um conjunto de dados, pode ser considerado que o dado, ou os dados ganham relevância e contexto, e desta forma tornam-se in- formações. Laudon e Laudon (2014, p. 13) fundamentam o conceito de “informação como um conjunto de dados que foram modelados em um formato significativo e útil para os seres humanos. A informação parte da interpretação de dados”. Dados se tornam informações quando possuem relação com outros dados, e, ao ser aplicado em uma situação real geram o que chamamos de conhecimento. 16 FUNçõEs básICAs E EsTrUTUrA DE Um sIsTEmA opErACIoNAl SISTEMAS OPERACIONAIS FUNÇÕES BÁSICAS DO SISTEMA OPERACIONAL Um sistema operacional é definido por Deitel, Deitel e Choffnes (2005, p. 4) como “um software que habilita as aplicações a interagir com o hardware de um computador”. O autor define que o software que con- tém os componentes centrais do sistema operacional é denominado nú- cleo (kernel), responsável pelas funções de gerenciamento de recursos da unidade central de processamento, de drivers e de processos, mantendo a gestão do sistema computacional sob controle, como por exemplo, con- trolar os periféricos conectados ao computador. Um sistema operacional possui diversas funções, mas duas delas são consideradas como básicas por Machado e Maia (2017): facilidade de acesso aos recursos do sistema e compartilhamento de recursos de forma organizada e protegida. 1. Facilidade de acesso aos recursos do sistema: cabe ao sistema operacional servir de interface entre os usuários e os recursos disponíveis no sistema computacional de forma a tornar essa comunicação transparente e permitir um trabalho eficiente. Este conceito de ambiente simulado é visto por Machado e Maia (2017) como uma máquina virtual, presente na grande maioria dos sistemas da atualidade. 2. Compartilhamento de recursos de forma organizada e protegida: o compartilhamento de recursos permite a diminuição de custos, na medida em que amis de um usuário pode fazer uso das mesmas facilidades e dispositivos de um sistema de forma concorrente. Exemplo é a utilização de impressoras, sistemas de armazenamen- to de dados, sistemas de comunicação em rede dentre outros. A figura 1 apresenta uma visão do sistema operacional. Figura 1 – Visão do sistema operacional Fonte: machado e maia (2017, p. 4). Funções básicas de um SO: acesso e compartilhamento dos recursos do sistema. 17 FUNçõEs básICAs E EsTrUTUrA DE Um sIsTEmA opErACIoNAl SISTEMAS OPERACIONAIS Perceba que um sistema computacional é visto sob a ótica do har- dware, como um conjunto de circuitos elétricos. O software é o elemento que oferece serviços aos usuários, como armazenamento de dados em discos, impressões, acesso à rede e a aplicações distribuídas. Um computador é visto por Machado e Maia (2017) como uma má- quina de camadas ou máquina de níveis, onde inicialmente existe o nível de hardware e o nível de sistema operacional. Para Tanenbaum e Bos (2016),o sistema operacional pode também ser visto de diferentes formas: 1. Sistema operacional como uma máquina estendida: visão onde um sistema operacional esconde o hardware dos usuários e suporta programas com abstrações de qualidade, limpas, elegantes e consistentes com os quais o usuário dese- ja trabalhar, sem se preocupar com a necessidade de acessar hardwares de forma técnica. Para isso, considerando os atuais sistemas disponíveis no mercado, há interfaces gráficas que apresentam e controlam o acesso aos dispositivos do sistema, ou mesmo interfaces dirigidas por digitação de comandos em formato de texto, mas suportada por assistentes e tutoriais. 2. Sistema operacional como um gerenciador de recursos: o sistema operacional deve estar disponível para gerenciar to- das as partes de um sistema complexo, como processadores, memórias, temporizadores, discos, dispositivos de interface (mouse, teclado, câmeras), oferecendo a múltiplos usuários estes recursos, defendem Tanenbaum e Bos (2016). Esse gerenciamento inclui a multiplexação de recursos de duas formas: no espaço e no tempo. Considere a multiplexação como o uso compartilhado de um recurso. Silberschatz, Galvin e Gagne (2015) relatam que um sistema ope- racional fornece um ambiente para a execução de programas e assim oferece determinados serviços para programas e para os usuários desses programas. Vejamos: • Interface com o usuário: sistemas operacionais dispõem de uma interface de usuário ou UI (User Interface) que pode ser via linha de comando, uma interface batch onde comandos e suas diretivas de controle são inseridos em arquivos ou ainda uma interface gráfica, chamada de GUI (Graphical User Interface). • Execução de programas: recursos para carregamento de um programa na memória e sua execução. • Operações de I/O: operações de Input e Output, ou seja, de entrada e saída de dados. MULTIPLEXAÇÃO Transmissão simultânea de várias mensa- gens por uma mesma via, canal ou linha. Fonte: multiplexação - Dicio, Dicionário online de português. https://www.dicio.com.br/multiplexacao/ https://www.dicio.com.br/multiplexacao/ 18 FUNçõEs básICAs E EsTrUTUrA DE Um sIsTEmA opErACIoNAl SISTEMAS OPERACIONAIS • Manipulação de sistemas de arquivos: recursos e processos para gravação e gerenciamento de arquivos em memória. • Comunicações: pacotes de informações em formatos predefinidos para transmissão de processos pelo sistema operacional. • Detecção de erros: recursos para detectar e corrigir erros. • Alocação de recursos: gerenciamento de processos ativos ao mesmo tempo. • Contabilização: controle de utilização de recursos. • Proteção e segurança: controle e proteção e processos concorrentes. CONCEITO DE HARDWARE E SOFTWARE Um sistema computacional é definido por Machado e Maia (2017, p. 23) como “um conjunto de cir- cuitos eletrônicos interligados, formado por processadores, memórias, registradores, barramentos, moni- tores de vídeo, mouse, discos magnéticos, além de outros dispositivos físicos (hardware).” Estes sistemas estão agrupados em três subsistemas principais chamados de unidades funcionais. Vejamos então as uni- dades funcionais de um sistema operacional: • Processador: chamado de CPU (Central Processing Unit) ou Unidade Central de Processamen- to, gerencia o sistema computacional controlando as operaçõesrealizadas por cada unidade funcional e com função principal de controlar e executar instruções presentes na memória prin- cipal, através de operações básicas aritméticas e fomentação de dados. Composto por unidade de controle, unidade lógica e aritmética e registradores, este último, dispositivo com a função principal de armazenar dados temporariamente. Tanenbaum e Bos (2016, p. 34) consideram a CPU como “o cérebro do computador”. Os autores ainda nos informam que vivenciamos em um momento tecnológico onde o crescimento do número de transistores em um processador au- mentou significativamente conforme já anunciava a Lei de Moore desde os anos 1970 e levou os processadores ao conceito de multithreading, com implicações para o sistema operacional agora necessitar suportar o conceito de thread, como linha de processamento e gestão de múl- tiplos núcleos de processamento dentro de um mesmo processador. SAIBA MAIS Sobre a Lei de Moore: conforme descrito no site da Intel, em 1965 Gordon Moore verificou que o ritmo da evolução do poder de processamento de processadores dobrava a cada 18 meses (tempo de lançamento de novos modelos) mantendo praticamente o mesmo custo de fabricação. Disponível em: https://www.intel.com.br/content/www/br/pt/silicon- innovations/moores-law-technology.html. Acesso em: 01 ago. 2024. https://www.intel.com.br/content/www/br/pt/silicon-innovations/moores-law-technology.html https://www.intel.com.br/content/www/br/pt/silicon-innovations/moores-law-technology.html 19 FUNçõEs básICAs E EsTrUTUrA DE Um sIsTEmA opErACIoNAl SISTEMAS OPERACIONAIS • Memória principal: também chamada de memória primária ou memória real por Machado e Maia (2007), representa o local onde são armazenados instruções e dados, pode ser classificada conforme sua volatilidade, que é a capacidade de a memória preservar o seu conteúdo mesmo sem uma fonte de alimentação ativa. Outro mecanismo associado a memória principal é a chama- da Memória Cache, uma memória volátil de alta velocidade com pequena capacidade de armaze- namento, conforme defendem Tanenbaum e Bos (2016). Veja que o conceito de caching definido pelos autores citados exerce um papel importante em muitas áreas da ciência de computadores, por exemplo, na operação realizada pela maioria dos sistemas operacionais que mantêm arquivos muito usados na memória principal para evitar ter de buscá-los em disco de modo repetido. Vale aqui considerar as memórias do tipo RAM (Random Access Memory), voláteis, as memórias ROM (Read-Only Memory) e as memórias EPROM (Eraseble Programmable ROM) e memória flash, do tipo não voláteis. Adicionalmente, a memória CMOS (Complementary Metal Oxide Semiconduc- tor), uma pequena estrutura de memória, também é utilizada em sistemas computacionais como uma memória volátil, por exemplo, para armazenamento de hora e data atualizadas no sistema ou em dispositivos USB (Universal Serial Bus). A velocidade de acesso aos dados é diferente em cada tipo de memória, como pode ser verificado na figura 1. • Dispositivos de Entrada e Saída: dispositivos que interagem intensamente com o sistema operacional e controlam os hardwares adicionados ao computador pessoal ou dispositivo móvel. Segundo Tanenbaum e Bos (2016), os dispositivos de E/S (Entrada e Saída) consistem em geral duas partes: um controlador e o dispositivo em si. O controlador é um chip ou um con- junto de chips que controla fisicamente o dispositivo. Machado e Maia (2017, p. 28) nos lembra que “os dispositivos de entrada e saída (E/S) são utilizados para permitir a comunicação entre o sistema computacional e o mundo externo, e podem ser divididos em duas categorias: os que são utilizados como memória secundária e os que servem para a interface usuário-máquina”. Figura 2 – relação entre dispositivos de armazenamento Fonte: machado e maia (2017, p. 27). Além dos subsistemas principais de um sistema computacional, outros dispositivos também são im- portantes para o contexto do sistema operacional como o barramento, o pipelining (definido a seguir) e os tipos de software para o sistema operacional. Vejamos: 20 FUNçõEs básICAs E EsTrUTUrA DE Um sIsTEmA opErACIoNAl SISTEMAS OPERACIONAIS • Barramento: também chamado de bus, trata-se de um meio de comunicação compartilhado que permite a comunicação entre as unidades funcionais de um sistema computacional. Deitel, Deitel e Choffnes (2005) apresenta exemplos de barramentos como o PCI (Peripheral Compo- nent Interconnect). De acordo com Machado e Maia (2016) eles são classificados em barramen- tos processador-memória, barramentos de E/S e barramentos de backplane. • Barramento processador-memória: são de curta extensão e alta velocidade para que seja otimizada a transferência de informações entre o processador e as memórias. • Barramento E/S: utilizado para comunicação com o adaptador e dispositivos de entrada e saída. • Barramento backplane: o barramento de E/S não se conecta diretamente ao barramento processador-memória, tendo o barramento de backplane a função de integrar estes dois barra- mentos para reduzir o número de adaptadores no sistema. • Pipelining: técnica que permite ao processador executar múltiplas instruções paralelamente em estágio. Segundo Machado e Maia (2017), o pipelining pode ser empregado em sistemas com um ou mais processadores, em diversos níveis e tem sido a técnica de paralelismo mais utilizada para aumentar o desempenho dos sistemas computacionais. A figura 2 apresenta uma arquitetura do pipeline com quatro estágios. • Tipos de software para o sistema operacional: para que um software tenha uma utilidade na prática, deve existir então um conjunto de programas utilizados como interface com o usuário e o hardware. Machado e Maia (2017) sustentam que o nome utilitário é usado quando se de- seja fazer referência a softwares relacionados diretamente com os serviços complementares do sistema operacional, como tradutor, compilador, linker e depurador. Lembremo-nos que os sis- temas de softwares desenvolvidos para implementar atividades informatizadas são chamados de aplicação ou aplicativos, no contexto dos sistemas operacionais para dispositivos móveis. Vejamos um pouco mais destes utilitários de sistema operacional. • Tradutor: softwares responsáveis em traduzir códigos escritos em uma determinada lingua- gem de programação para códigos executáveis, utilizados pelo sistema operacional para executar alguma aplicação. Por exemplo, o montador (Assembler) é o utilitário responsável por traduzir um programa-fonte em linguagem de montagem em um programa-objeto não exe- cutável, conforme definem Machado e Maia (2016). De forma complementar, um compilador é um utilitário responsável por gerar, a partir de um programa escrito em uma linguagem de alto nível, um programa em linguagem de máquina não executáveis. Linguagens de programação como Ada, Fortran, C, C++, C#, Cobol, Delphi, Java dentre outras não têm relação direta com a máquina, ficando essa preocupação exclusivamente com o compilador. Um compilador é um utilitário que opera de forma integrada aos componentes do sistema de programação disponí- vel, sob a supervisão do sistema operacional. • Interpretador: considerado um tradutor que não gera módulo-objeto. A partir de um progra- ma-fonte escrito em linguagem de alto nível, o interpretador traduz as instruções e a executa imediatamente quando na execução do programa. Algumas linguagens de programação são interpretadas como o Perl, JavaScript, Logo, PHP, VBScript, R, Ruby, Python dentre outras (Ma- chado; Maia, 2017). • Linker: editor de ligação representa o utilitário responsável por gerar um único programa executável a partir de um ou mais módulos-objeto. Veja que em alguns sistemas, o compilador 21 FUNçõEs básICAs E EsTrUTUrA DE Um sIsTEmA opErACIoNAl SISTEMAS OPERACIONAIS pode realizar mais do que suas funções básicas, como resolver referências de endereço, sendo que, desta forma, o programa não necessita da etapa de linker, eoutros utilitários realizam a carga do programa na memória e o executam (MACHADO; MAIA, 2017). • Loader: chamado de carregador é o utilitário responsável por carregar na memória principal um programa para ser executado, procedimento de carga que varia com o código gerado pelo linker e assim o loader é classificado como absoluto ou relocável. Quando absoluto o loader somente necessita conhecer o endereço de memória inicial e o tamanho do módulo para realizar o carregamento e assim transferir o programa da memória secundária para a memória principal para execução. Quando relocável, o programa pode ser carregado em qualquer posição de memória, e o loader é responsável pela relocação no momento do carre- gamento (Machado; Maia, 2017). • Depurador: também chamado de debugger, é o utilitário que permite ao usuário acompanhar toda a execução de um programa a fim de detectar erros na sua lógica para acompanhar a exe- cução de um programa detalhadamente, possibilitar a alteração e a visualização do conteúdo de variáveis, implementar pontos de parada no sistema e especificar que, toda vez que o con- teúdo de uma variável for modificado, o programa envie uma mensagem informando o sistema operacional (Machado; Maia, 2017). Figura 3 – Arquitetura pipeline com quatro estágios Fonte: machado e maia (2017, p. 30). ARQUITETURA DE PROCESSAMENTO EM SISTEMAS OPERACIONAIS No final da década de 1970, houve diversas experiências com projetos de processamento de instru- ções muito complexas que eram possibilitadas pelo interpretador do sistema operacional. Os projetistas de sistemas tentavam tomar as melhores decisões sobre o que as máquinas podiam fazer e o que as lin- guagens de programação de alto nível demandavam. Segundo Tanenbaum (2013, p. 66), “quase ninguém pensava em projetar máquinas mais simples, exatamente como agora não há muita pesquisa na área de projeto de planilhas, redes, servidores Web etc.” 22 FUNçõEs básICAs E EsTrUTUrA DE Um sIsTEmA opErACIoNAl SISTEMAS OPERACIONAIS A linguagem de máquina de um computador é considerada como a linguagem de programação que é realmente entendida pelo processador definem Machado e Maia (2017). Cada processador possui então um conjunto definido de instruções de máquina, definido por seu fabricante. Estas instruções fazem referência a detalhes, como registradores, formas de endereçamento e tipos de dados, que carac- terizam suas funcionalidades. Neste contexto, duas abordagens foram definidas para a construção da arquitetura de processamento em um sistema computacional: RISC (Reduced Instruction Set Computer) e CISC (Complex Instruction Set Computer). Um computador com arquitetura RISC se caracteriza por possuir poucas instruções de máquina, ge- ralmente simples, que são executadas diretamente pelo hardware. Estas instruções não acessam a me- mória principal na maioria das vezes, trabalhando principalmente com registradores que são de grande número para esta arquitetura. As instruções são executadas rapidamente, facilitando a implementação do pipelining. São exemplos de processadores de arquitetura RISC: Sparc (Sun), Mips (Silicon Graphics), RS6000 e Power (IBM), PA-RISC (HP), Alpha AXP (Compaq), Rx000 (MIPS), 88000 (Motorola), i860 (Intel). Os processadores com arquitetura CISC já possuem instruções complexas que são implementadas pelos chamados micro programas. O número de registradores é pequeno em sua arquitetura e qualquer instrução pode referenciar a memória principal do sistema. Neste tipo de arquitetura de processador, a implementação do pipelining é mais difícil. São exemplos de processadores com arquitetura CISC: VAX (DEC), Pentium (Intel) e o 68040 (Motorola). Veja a seguir uma tabela com as principais características das arquiteturas RISC e CISC. Figura 4 – Arquitetura rIsC x Arquitetura CIsC ARQUITETURA RISC ARQUITETURA CISC Poucas instruções Muitas instruções Instruções executadas pelo hardware Instruções executadas por microcódigo Instruções com formato fixo Instruções com diversos formatos Instruções utilizam poucos ciclos de máquina Instruções utilizam múltiplos ciclos Instruções com poucos modos de endereçamento Instruções com diversos modos de endereçamento Arquitetura com muitos registradores Arquitetura com poucos registradores Arquitetura pipelining Pouco uso da técnica do pipelining Fonte: machado e maia (2017, p. 31). TIPOS DE SISTEMAS OPERACIONAIS Para a utilização de hardwares eletrônicos e micro processados é necessário a execução de algum tipo de software. Mesmo que não tenhamos acesso ao software de um dispositivo como eletrodoméstico ou auto- móvel, ele ainda está presente e operante para o funcionamento do hardware. Conforme apresenta Laudon e Laudon (2014), o software de sistema engloba e controla o acesso ao hardware; e o software de aplicação traz alguma solução para que os usuários possam fazer uso do computador como ferramenta. O´Brien e Marakas (2012) trazem uma classificação dos softwares com as três categorias antes citadas: 23 FUNçõEs básICAs E EsTrUTUrA DE Um sIsTEmA opErACIoNAl SISTEMAS OPERACIONAIS 1. Sistema de base: chamado de sistema operacional, realiza o gerenciamento e controle das atividades do computador, por isso é chamado de sistema operacional. Exemplos: Microsoft Windows, Linux Ubuntu, MacOS, Android e iOS da Apple. 2. Aplicação: são programas que processam rotinas e fazem interface para as tarefas de usuários dentro uma infinidade de aplicações possíveis. Esses softwares também abarcam os aplicativos (Apps) de tablets e smartphones. Exemplos: Microsoft Excel, Waze, Zoom, Gmail e WhatsApp. 3. Rotinas e procedimentos: estes softwares são representados por configurações, scripts e roti- nas de processamento de informações, que atuam junto aos sistemas operacionais e gerencia- dores de aplicações. Exemplos: arquivos de configuração e scripts de programação. Neste nosso estudo, iremos focar no software classificado como sistema operacional, analisar suas funcionalidades e características, assim como sua relação com o hardware computacional e os outros ele- mentos de um sistema de informação. Um Sistema Operacional é definido por Machado e Maia (2017 p. 3) como “um conjunto de rotinas executado pelo processador, de forma semelhante aos programas de usuário”. Sua principal função é con- trolar o funcionamento de um computador, gerenciando a utilização e o compartilhamento dos seus diver- sos recursos, como os processadores, as memórias e os dispositivos de entrada e saída. Os diversos tipos de sistemas operacionais e sua evolução estão relacionados diretamente com a evolu- ção do hardware e das aplicações por ele suportadas. De forma simples, os programas, ou Jobs, eram os termos mais utilizados no contexto de sistemas operacionais e mais tarde surgiu o conceito de processo e subproces- sos. Em seguida, o termo thread também foi agregado junto a arquitetura dos sistemas operacionais. São três os principais tipos de sistemas operacionais na visão de Machado e Maia (2017): sistemas monoprogramáveis/monotarefa, sistemas multiprogramáveis/multitarefa e sistemas com múltiplos pro- cessadores. Faremos aqui uma breve descrição de cada um deles e suas características e trataremos com mais detalhe na unidade de encerramento desta disciplina: 1. Sistemas monoprogramáveis/monotarefa: os sistemas monoprogramáveis se caracterizam por permitir que o processador, a memória e os periféricos permaneçam exclusivamente dedi- cados à execução de um único programa. Estes sistemas são relacionados ao surgimento dos primeiros computadores na década de 1960. Também chamados de sistemas monotarefa, se caracterizam por permitir que todos os recursos do sistema fiquem exclusivamente dedicados a uma única tarefa. Como desvantagem, a memória é subutilizada caso o programa não a preen- cha totalmente e os periféricos estão dedicados a um único usuário, nem sempre utilizados de forma integral. Como vantagem, são de simples implementação e não exigem preocupação com problemasno compartilhamento de recursos (Machado; Maia, 2017). 2. Sistemas multiprogramáveis/multitarefa: estes sistemas são uma evolução dos sistemas monoprogramáveis. Neles, os recursos computacionais são compartilhados entre os diversos usuários e aplicações. O sistema operacional tem a preocupação em gerenciar o acesso concor- rente aos seus diversos recursos, como memória, processador periféricos, de forma ordenada e protegida, dentre diversos programas. Sua principal vantagem na visão de Machado e Maia (2017) é a redução de custos em função do possível compartilhamento dos diversos recursos e aplicações. Estes sistemas podem ser classificados como sistemas multiprogramáveis monou- suários, encontrados em computadores pessoais e estações de trabalho com um único usuá- rio e sistemas multiprogramáveis multiusuário, com ambientes interativos que possibilitam a 24 FUNçõEs básICAs E EsTrUTUrA DE Um sIsTEmA opErACIoNAl SISTEMAS OPERACIONAIS diversos usuários conectarem-se ao sistema de forma simul- tânea. Estes sistemas ainda podem ser subclassificados em sistemas batch, sistemas de tempo compartilhado e sistemas de tempo real. Os sistemas batch tem a característica de não exigir a interação do usuário com a aplicação e todas as en- tradas e saídas de dados são implementadas por algum tipo de memória secundária, geralmente arquivos em disco. Os sis- temas de tempo compartilhado (time-sharing) permitem que diversos programas sejam executados a partir da divisão do tempo do processador em pequenos intervalos, denomina- dos de fatia de tempo (time-slice), como na maioria das apli- cações comerciais da atualidade. Já os sistemas de tempo real (real-time) são implementados de forma semelhante ao de tempo compartilhado, mas com a diferença relacionada com o tempo exigido no processamento de dados, pois nele não existe a ideia de fatia de tempo, onde a importância ou priori- dade da execução de um programa é definida pela aplicação não pelo sistema operacional. Exemplo deste tipo de sistema são os sistemas de monitoramento de refinarias de petróleo e tráfego aéreo. A figura 5 apresenta um sistema operacional multiprogramável e multitarefa (Machado; Maia, 2017). Figura 5 – sistemas multiprogramáveis/multitarefa. Fonte: machado e maia (2017, p. 17) 3. Sistemas com múltiplos processadores: estes sistemas caracterizam-se por possuir duas ou mais CPU, ou unidade central de processamento interligadas e trabalhando em Sistema operacional (SO) é um conjunto de rotinas executado pelo processador de forma semelhante aos programas de usuário. 25 FUNçõEs básICAs E EsTrUTUrA DE Um sIsTEmA opErACIoNAl SISTEMAS OPERACIONAIS conjunto. Sua vantagem é permitir que vários programas sejam executados o mesmo tempo ou que um mesmo programa seja subdividido em partes para serem executadas simultaneamente em mais de um processador. Estes sistemas são subdivididos em sistemas com múltiplos pro- cessadores fortemente acoplados e sistemas com múltiplos processadores fracamente acopla- dos (Machado; Maia, 2017). 4. Sistemas com múltiplos processadores fortemente acoplados: chamados de multiproces- sadores, possuem vários processadores compartilhando uma única memória física (Shared Me- mory) e dispositivos de entrada/saída sendo gerenciados por apenas um sistema operacional. Os sistemas fortemente acoplados são divididos em SMP (Symmetric Multiprocessors) e NUMA (Non-Uniform Memory Access). Sistemas SMP caracterizam-se pelo tempo uniforme de acesso à memória principal pelos seus diversos processadores e os sistemas NUMA apresentam diversos conjuntos reunindo processadores e memória principal, sendo cada conjunto conectado aos outros através e uma rede de interconexão. 5. Sistemas com múltiplos processadores fracamente acoplados: chamados de loosedy cou- pled caracterizam-se por possuir dois ou mais sistema computacionais conectados através de linhas de comunicação. Eles são chamados de multicomputadores. Os sistemas operacionais de rede e os sistemas distribuídos fazem parte desta classificação de sistemas operacionais na visão de Machado e Maia (2017). Sistemas com múltiplos processadores são subdivididos em sistemas com múltiplos processadores fortemente acoplados e sistemas com múltiplos processadores fracamente acoplados Figura 6 – Exemplos de sistemas operacionais. Fonte: Wikimedia Commons. Analisando a visão de Tanenbaum e Bos (2016), uma outra classificação pode ser percebida quanto aos tipos de sistemas operacionais. O que os autores chamam de “zoológico dos sistemas operacionais” refere-se a um volume mais diversificado de tipos de sistemas utilizados na atualidade. Vejamos: 1. Sistemas operacionais de computadores de grande porte: estes são os sistemas operacionais destinados a computadores de grande porte, chamados de mainframes, orientados para proces- 26 FUNçõEs básICAs E EsTrUTUrA DE Um sIsTEmA opErACIoNAl SISTEMAS OPERACIONAIS samento de tarefas múltiplas ao mesmo tempo, com grande exigência de processos de entrada e saída de dados. Exemplos desta categoria são o OS/390, O UNIX, ou mesmo distribuições do Linux. 2. Sistemas operacionais de servidores: são executados em servidores que são computadores pessoais com maiores recursos de processamento, memória e armazenamento e servem a múltiplos usuários ao mesmo tempo por meio de uma rede e permitem que usuários compar- tilhem recursos de hardware e software. São exemplos destes sistemas operacionais o Solaris, FreeBSD, Linux e o Windows Server (MAachado; Maia, 2017). 3. Sistemas operacionais de computadores pessoais: sistemas idealizados para os computa- dores pessoais, com possibilidade de conexões com outros sistemas e compartilhamento de recursos. Exemplos destes sistemas são os tradicionais sistemas Microsoft Windows, Linux e suas diferentes distribuições e os sistemas MacOS da Apple. 4. Sistemas operacionais de multiprocessadores: sistemas operacionais com suporte a multi- programação, com fácil interação com usuários e amplamente usados para uso de aplicações comerciais. Exemplos são o Microsoft Windows, MacOS e também as distribuições Linux. 5. Sistemas operacionais de computadores portáteis: sistemas operacionais para dispositivos portáteis ou móveis como os PDA (Personal Digital Assistante), smartphones, tablets dentre outros. Normalmente são mais simplificados para serem executados em dispositivos menores (tamanho), com acesso a redes e suporte a câmeras e sensores diversos. Exemplos São o iOS da Apple e o Android da google. 6. Sistemas operacionais embarcados: são executados em computadores que controlam dis- positivos que não costumam ser visto como computadores e não aceitam softwares instalados como dispositivos de DV, telefones tradicionais, players de MP3, relatam Tanenbaum e Bos (2017). Exemplos destes sistemas operacionais são o Embedded Linux, QNX e VxWorks. 7. Sistemas operacionais de nós sensores (sensor-node): sistemas operacionais para sensores representados por computadores pequenos movidos a bateria com rádios integrados. Precisa ser pequeno e simples pois os nós têm uma memória RAM pequena e a duração da bateria é fundamental na operação do sistema. Exemplo é o TinyOs. 8. Sistemas operacionais de tempo real: caracterizado por ter o tempo como um parâmetro- -chave, usado em sistemas de controle de processo industrial, computadores de coleta de da- dos em fábricas, controle aéreo, robôs industriais dentre outros. Podem ser classificados como sistemas de tempo real crítico, quando uma determinada ação necessita ocorrer absolutamente em um determinado momento e sistema de tempo real não crítico, em que perder um prazo ocasionalmente é aceitável sem causar danos no sistema como um todo. Um exemplo deste tipo de sistema é o eCos. 9. Sistemas operacionais de cartões inteligentes (smartcard): sãos sistemas considerados como os menores sistemas operacionais executados em cartões inteligentes, que são dispositi- vos como um cartão de crédito munido deum chip de CPU. 27 FUNçõEs básICAs E EsTrUTUrA DE Um sIsTEmA opErACIoNAl SISTEMAS OPERACIONAIS ESTRUTURA DE UM SISTEMA OPERACIONAL O sistema operacional de um dispositivo computacional é formado por um conjunto de rotinas que oferece serviços aos usuários e às suas aplicações. Na visão de Machado e Maia (2017) esse conjunto de rotinas é denominado núcleo do sistema, ou Kernel. Vejaque a maioria dos sistemas operacionais é forne- cida acompanhada de utilitários e linguagem de comandos, ferramentas de apoio ao usuário, mas que não fazem parte do núcleo do sistema. Em um sistema operacional, há três maneiras de realizar a comunicação entre usuários e o Kernel do sistema. Uma delas é por meio das chamadas rotinas do sistema realizadas por aplicações. Os usuários po- dem interagir como Kernel de forma amigável através e utilitários ou também por comandos. Cada sistema operacional possui diferentes comandos. O Microsoft Windows, em suas diferentes versões para servido- res ou computadores pessoais possui um conjunto de comandos que podem ser acessados e executados através do prompt de comando assim como pela aplicação Power Shell. As diversas distribuições do Linux também possuem um conjunto de comandos que podem ser executados através da linha de comandos. Iremos nesta seção conhecer um pouco melhor as funções do Kernel e os conceitos de segurança, proteção do sistema, modos de acesso, rotinas de sistema, chamadas de sistema (system calls), linguagens de comandos e ativação do sistema. A figura 7 apresenta um exemplo de interação com o sistema opera- cional através de comandos em linha de comandos no aplicativo Power Shell. Figura 7 – Exemplo de interação com sistema operacional Windows Fonte: elaborada pelo autor (2022). FUNÇÕES DO NÚCLEO As principais funções do núcleo do sistema operacional encontradas nos sistemas estão listadas a seguir. Veja também a estrutura do sistema operacional na figura 8. 28 FUNçõEs básICAs E EsTrUTUrA DE Um sIsTEmA opErACIoNAl SISTEMAS OPERACIONAIS 1. Tratamento de interrupções e exceções. 2. Criação e eliminação de processos e threads. 3. Sincronização e comunicação entre processos e threads. 4. Escalonamento e controle dos processos e threads. 5. Gerencia de memória. 6. Gerência do sistema de arquivos. 7. Gerencia de dispositivos de E/S. 8. Suporte às redes locais e distribuídas. 9. Contabilização do uso do sistema. 10. Auditoria e segurança do sistema. 11. Interface com o usuário. Figura 8 – Estrutura de um sistema operacional Fonte: machado e maia (2017, p. 47). Considerando a complexidade da arquitetura de sistemas operacionais do tipo multiprogramá- vel, é comum que surjam problemas relacionados à segurança no relacionamento dos diversos sub- sistemas. Uma das principais características destes sistemas multiprogramados, conforme Machado e Maia (2017), é permitir que vários programas compartilhem o processador. Assim, o sistema operacio- nal deve ser responsável pelo controle da utilização da UCP para impedir que algum programa mo- nopolize o seu uso inadequadamente. E, para solucionar estes problemas originados pelo ambiente multiprogramável, o sistema operacional deve implementar mecanismos de proteção que controlem o acesso concorrente aos diversos recursos do sistema. Muitas das principais implementações de se- 29 FUNçõEs básICAs E EsTrUTUrA DE Um sIsTEmA opErACIoNAl SISTEMAS OPERACIONAIS gurança de um sistema operacional utilizam um mecanismo chamado de modo de acesso para contro- lar o acesso aos recursos do sistema. MODO DE ACESSO Em geral, processadores possuem dois modos de acesso: modo usuário e modo Kernel. Quando o processador trabalho no chamado modo usuário, uma aplicação somente pode executar instruções conhe- cidas como não privilegiadas no sistema, tendo acesso a um número pequeno de instruções. Já no modo Kernel a aplicação pode ter acesso ao conjunto total de instruções do processador (MACHADO; MAIA, 2017). Instruções privilegiadas: não devem ser usadas de maneira indiscriminada pelas aplicações pois trazem perigos à integridade do sistema. As instruções privilegiadas só podem ser executadas quando o modo de acesso do processador está em Kernel. Instruções não privilegiadas: Estas instruções são as que não oferecem risco ao sistema e podem ser executadas em modo não privilegiado, ou seja, em modo usuário (MACHADO; MAIA, 2017). SAIBA MAIS Para conhecer mais sobre o modo de usuário e o modo Kernel do sistema operacional Windows, acesse o repositório da Microsoft chamado de Learn e leia o artigo chamado de Modo de usuário e modo Kernel. Disponível em: https://learn.microsoft.com/pt-br/windows-hardware/dri- vers/gettingstarted/user-mode-and-kernel-mode. Acesso em: 01 ago. 2024. ROTINAS DO SISTEMA OPERACIONAL E SYSTEM CALLS As rotinas do sistema operacional compõem o núcleo do sistema, ou seja, o Kernel, oferecendo ser- viços aos usuários e suas aplicações. Todas as funções do núcleo são implementadas por rotinas que pos- suem instruções privilegiadas assim, todo o controle de execução de rotinas do sistema operacional é realizado pelo mecanismo conhecido como system call. Perceba que, toda vez que uma aplicação desejar chamar uma rotina do sistema operacional, o mecanismo de system call é ativado. Machado e Maia (2017, p. 50) nos ensinam que “os mecanismos de system call e de proteção por hardware garantem a segurança e a integridade do sistema.” Veja então que as rotinas do sistema e o system call podem ser entendidos como uma porta de entrada para o núcleo do sistema operacional e seus serviços. Veja a figura 9 com a chamada a uma rotina do sistema https://learn.microsoft.com/pt-br/windows-hardware/drivers/gettingstarted/user-mode-and-kernel-mode https://learn.microsoft.com/pt-br/windows-hardware/drivers/gettingstarted/user-mode-and-kernel-mode 30 FUNçõEs básICAs E EsTrUTUrA DE Um sIsTEmA opErACIoNAl SISTEMAS OPERACIONAIS Figura 9 – Chamada a uma rotina do sistema Fonte: machado e maia (2017, p. 50). O termo system call é utilizado em sistemas Unix e seus derivados, e possui outros nomes como sys- tem services no Open VMS, e API (Application Program Interface) nos sistemas Microsoft Windows. Cada sistema operacional possui seu próprio conjunto de rotinas, com nomes, parâmetros e formas de ativação específicos. Veja a figura 10 apresentada a seguir com algumas das system calls nos sistemas derivados de UNIX e nos sistemas Windows. Figura 10 – system calls ou ApIs UNIX WIN32 DESCRIÇÃO fork CreateProcess Cria um novo processo waitpid WaitForSingleObject Pode esperar que um processo termine execve (nenhuma) CreateProcess = fork + execve exit ExitProcess Conclui a execução open CreateFile Cria um arquivo ou abre um arquivo existente close CloseHandle Fecha um arquivo read ReadFile Lê dados a partir de um arquivo write WriteFile Escreve dados em um arquivo Iseek SetFilePointer Move o ponteiro do arquivo stat GetFileAttributesEx Obtém vários atributos do arquivo mkdir CreateDirectory Cria um novo diretório rmdir RemoveDirectory Remove um diretório vazio link (nenhuma) Win32 não dá suporte a ligações unlink DeleteFile Destrói um arquivo existente mount (nenhuma) Win32 não dá suporte a mount umount (nenhuma) Win32 não dá suporte a mount chdir SetCurrentDirectory Altera o diretório de trabalho atual chmod (nenhuma) Win32 não dá suporte a segurança (embora o NT suporte) kill (nenhuma) Win32 não dá suporte a sinais time GetLocalTime Obtém o tempo atual Fonte: Tanenbaum e bos (2016, p. 43). LINGUAGEM DE COMANDOS A chamada linguagem de comandos ou ainda linguagem de controle, permite que o usuário se co- munique de uma forma simplificado com o sistema operacional através da execução de tarefas especificas 31 FUNçõEs básICAs E EsTrUTUrA DE Um sIsTEmA opErACIoNAl SISTEMAS OPERACIONAIS como criar, ler e eliminar arquivos, consultar diretórios ou verificar a data do sistema. Figura 11 – Alguns comandos para interface com o sistema operacional COMANDO DESCRIÇÃOdir Lista o conteúdo de um diretório cd Altera o diretório default type Exibe o conteúdo de um arquivo del Elimina arquivos mkdir Cria um diretório Ver Mostra a versão do Windows Fonte: machado e maia (2017, p. 51). A seguir, conheceremos um pouco mais sobre a estrutura dos sistemas operacionais, estudando ago- ra diversas arquiteturas. SAIBA MAIS Existe um volume grande de comandos para operação e gerenciamento de atividades e programas no Microsoft Windows. Para conhecer um pou- co mais sobre estes comandos, veja o artigo 100 comandos para você exe- cutar no Windows 10 que pouca gente conhece. Disponível em: https://canaltech.com.br/windows/100-comandos-para- -voce-executar-no-windows-10-que-pouca-gente-conhece/. Acesso em: 01 ago. 2024. ARQUITETURAS DE SISTEMAS OPERACIONAIS • Arquitetura monolítica: organização mais comum dentre os sistemas operacionais é execu- tado como um único programa em modo núcleo. O sistema operacional é escrito como uma coleção de rotinas, ligadas a um único programa binário executável, definem Tanenbaum e Bos (2016). Além do sistema operacional que é carregado na inicialização do computador, outros sistemas dão suporte a extensões carregáveis, como drivers de dispositivos de entrada e saída e sistemas de arquivos. Esta arquitetura foi adotada no MS-DOS e nos primeiros sistemas UNIX. Atualmente, no UNIX são chamados de bibliotecas compartilhadas e no Windows de DLL (Dy- namic Link Libraries), arquivos com a extensão .dll. • Arquitetura em camadas: o sistema operacional é dividido em níveis sobrepostos onde cada camada oferece um conjunto de funções que podem ser utilizadas apenas pelas camadas su- periores. O primeiro sistema operacional com esta abordagem foi o THE (Tecnische Hogeschool Eindhoven), composto por seis camadas. O MULTICS e o OpemVMS também foram imple- https://canaltech.com.br/windows/100-comandos-para-voce-executar-no-windows-10-que-pouca-gente-conhece/ https://canaltech.com.br/windows/100-comandos-para-voce-executar-no-windows-10-que-pouca-gente-conhece/ 32 FUNçõEs básICAs E EsTrUTUrA DE Um sIsTEmA opErACIoNAl SISTEMAS OPERACIONAIS mentados com essa arquitetura, cuja vantagem está na estruturação em camadas que isola as funções do sistema operacional, facilitando sua manutenção. São exemplos de sistemas opera- cionais com arquitetura em camadas: UNIX, Linux e o Windows 200x (Tanenbaum; Bos, 2016). • Arquitetura microkernel: ou micronúcleo busca tornar o núcleo do sistema operacional menor e mais simples, disponibilizando processos em que cada um deles é responsável por oferecer um conjunto específico de funções, como a gerência de arquivos, a gerência de pro- cessos, a gerência de memória e o escalonamento de processos. A proposta da abordagem está relacionada a ter um núcleo mínimo e colocar o mecanismo para fazer algo no núcleo, mas não a política que designa prioridade para os processos e pode ser implementada por processos em modo usuário. Machado e Maia (2017) nos ensina que a maioria das iniciativas de desenvolvi- mento de sistemas operacionais com esta abordagem está relacionada ao desenvolvimento de sistemas operacionais distribuídos. • Arquitetura cliente-servidor: uma variação da ideia do micronúcleo que distingue duas clas- ses de processos, os processos servidores que prestam algum serviço, e os processos clientes, que usam esses serviços. Exemplos de sistemas operacionais que fazem uso desta abordagem são o MINIX, Mach, Amoeba, QNZ e o Windows NT. • Máquinas virtuais: abordagem onde o sistema computacional é formado por níveis, onde a camada de nível mais baixo é o hardware e acima desta camada encontra-se o sistema opera- cional que oferece suporte para as aplicações. Neste modelo há um nível intermediário entre o hardware e o sistema operacional denominado de gerência de máquinas virtuais. Segundo Tanenbaum e Bos (2016), o centro do sistema, conhecido como o monitor de máquina virtual, opera direto no hardware e realiza a multiprogramação, oferecendo várias máquinas virtuais para a camada seguinte. Veja que uma área onde a máquina virtual é utilizada é na execução e programas Java, por exemplo. A JVM (Java Virtual Machine) é uma máquina virtual que execu- ta um programa interpretador de sistemas desenvolvidos em Java, com a vantagem de que o código JVM pode ser executado neste ambiente. Exemplos de sistemas operacionais com esta abordagem são o JVM (Java Virtual Machine), VMware e o Microsoft Virtual PC. • Exonúcleos: utiliza a estratégia de dividir a máquina real e dar a cada usuário um subconjunto dos recursos do sistema computacional. A vantagem deste modelo é que ele se preocupa uma camada de mapeamento no gerenciamento dos recursos computacionais. CONSIDERAÇÕES FINAIS A evolução da computação pessoal vem sendo acompanhada pela própria evolução dos sistemas operacio- nais quando observamos os últimos 50 anos, após a criação e disseminação de uso dos computadores pessoais. Mais recentemente, os dispositivos móveis, como os smartfones, também integraram este aparato computacional utilizado pelo ser humano, seja nas suas atividades acadêmicas, atividades profissionais ou atividades sociais. Sem dúvida, a interação com estes dispositivos é fortemente dependente dos sistemas operacionais. Além a comunicação e interação com o usuário, função mais perceptível de um sistema operacional, este tipo de software é também responsável por oferecer facilidade de acesso aos recursos do sistema computacional (hardware computacional) e compartilhamento de recursos de forma organizada e prote- gida. Neste contexto, um sistema operacional pode ser percebido como uma máquina estendida, que es- conde as funções de tratamento de instruções e operações do hardware e também como um gerenciador de recursos, sejam estes providos em formato de hardware ou de software. 33 FUNçõEs básICAs E EsTrUTUrA DE Um sIsTEmA opErACIoNAl SISTEMAS OPERACIONAIS Os sistemas operacionais são os softwares responsáveis por fornecer um ambiente para a execução de programas e serviços perfazendo então o papel de: interface com o usuário, execução de programas, operações de entrada e saída de dados, manipulação de sistemas de arquivos, comunicação, detecção e correção de erros, alocação de recursos, contabilização, proteção e segurança. Estes sistemas podem ser classificados de diversas formas, considerando a visão de autores da área, sendo que se destaca a classificação dos sistemas operacionais para computadores de grande porte, para servidores, para computadores pessoais, para multiprocessadores, para computadores portáteis, para sis- temas embarcados, para nós sensores, para sistemas de tempo real e para sistemas de cartões inteligentes. Por fim, vale uma reflexão que a interação do ser humano com os computadores e dispositivos mó- veis se dá de forma mais simples na atualidade, considerando a qualidade das interfaces de comunicação que se tornam cada vez mais avançadas. REFERÊNCIAS CAIÇARA JUNIOR, C. Sistemas integrados de gestão ERP: uma abordagem gerencial. Curitiba: Editora InterSaberes, 2012. DEITEL, H. M.; DEITEL, P. J.; CHOFFNES, D. R. Sistemas operacionais. 3. ed. São Paulo: Pearson Prentice Hall, 2005. Disponível em: https://biblioteca.sophia.com.br/9198/index.asp?codigo_sophia=779754. Acesso em: 04 jan. 2023. HOELZ, J. C. Sistemas de informações gerenciais em RH. São Paulo: Pearson, 2015. LAUDON, K.; LAUDON, J. P. Sistemas de informações gerenciais. 11. ed. São Paulo: Pearson Prentice Hall, 2014. MONTEIRO, M. A. Introdução à organização de computadores. 5. ed. Rio de Janeiro: LTC, 2007. MACHADO, F. B.; MAIA, L. P. Arquitetura de sistemas operacionais. 5. ed. Rio de Janeiro: LTC, 2017. O’BRIEN, J. A.; MARAKAS, G. M. Administração de sistemas de informação. 15. ed. Porto Alegre: AMGH, 2012. SILBERSCHATZ, A.; GALVIN, P. B.; GAGNE, G. Fundamentos de sistemas operacionais. 9. ed. Rio de Janeiro: LTC, 2015. SISTEMAS Operacionais. Timetoast, 2024. Disponível em: https://www.timetoast.com/timelines/sistemas-operacionais-7a478d70-a03b-43d0-9c6a-8e8065e39b2e. Acesso em: 01 ago. 2024. TANENBAUM, A. S.; AUSTIN, T. Organização estruturada de computadores. 6. ed. São Paulo: Pearson, 2013. TANENBAUM, A. S.; BOS, H. Sistemas operacionais modernos. 4. ed. São Paulo: Pearson Education do Brasil, 2016. https://biblioteca.sophia.com.br/9198/index.asp?codigo_sophia=779754 _Hlk45120421 _Hlk45120979 _Hlk45122930 _Hlk45123571 _Hlk49347396 _Hlk49347442 _Hlk46775420 _Hlk46440301 _Hlk45203634 _Hlk69829475 Funções básicas e estrutura de um sistema operacional Introdução Evolução histórica de hardware, software e dos sistemas operacionais Breve histórico da evolução da computação pessoal Gerações dos computadores Evolução dos sistemas operacionais Conceito e funções básicas de um sistema operacional Funções básicas do sistema operacional Conceito de hardware e software Arquitetura de processamento em sistemas operacionais Tipos de sistemas operacionais Estrutura de um sistema operacional Funções do núcleo Modo de acesso Rotinas do sistema operacional e system calls Linguagem de comandos Arquiteturas de Sistemas Operacionais Considerações finais Referências Arquiteturas de Sistemas Operacionais Considerações finais Referências Gerenciamento do processador e gerenciamento de memória Introdução Processos e Threads Concorrência Processos Threads Sincronização e comunicação entre processos Exclusão Mútua Semáforos Monitores Troca de mensagens Deadlock Gerência do processador Gerência de memória Gerência de memória virtual Considerações finais Resumo Referências Sistemas de arquivos e gerenciamento de dispositivos Introdução Arquivos e diretórios Arquivos Diretórios Gerência de espaço, alocação e proteção de acesso Alocação de arquivos Proteção de acesso Caches Gerência de dispositivos Subsistema de entrada e saída Device Driver Controlador de entrada e saída Dispositivos de entrada e saída Gerência de armazenamento e interface com o usuário Sistemas de arquivos Dispositivos de armazenamento de dados Dispositivos de interface com o usuário Considerações finais Referências Sistemas operacionais com múltiplos processadores e segurança Introdução Virtualização e nuvem Exigências para virtualização Tipos de hipervisores Máquinas virtuais em CPUs com múltiplos núcleos Nuvem Sistemas operacionais com múltiplos processadores Vantagens e desvantagens Tipos de Sistemas Computacionais Sistemas operacionais de rede e sistemas distribuídos Sistemas Operacionais de Rede Sistemas Distribuídos Modelos de segurança em sistemas operacionais Ameaças e ataques Ações necessárias para garantir a segurança em sistemas de informação Implementação de sistemas e recursos para segurança Considerações finais Referências