estudos autônomos são muito importantes para o aprendizado além de assistir às aulas é necessário também revisar e aprofundar os conhecimentos algumas pessoas têm pouco tempo para os estudos e é por isso que a organização desse tempo é fundamental ter um planejamento para a semana incluindo sábados e domingos permite a concentração e promove o foco nas tarefas avalie constantemente se o seu planejamento é Realista e adequado a sua rotina por exemplo se você fica com sono depois do almoço Essa não é uma boa hora para estudar Observe os seus hábitos e defina o melhor momento organização
do tempo e disciplina são fundamentais para alcançar bons resultados acadêmicos Você sabe por que escolheu o seu curso de graduação e como esse curso pode te levar a alcançar seus sonhos responder a essas duas perguntas é fundamental para você chegar até o fim da sua graduação assim você vai se sentir mais motivado para realizar atividades como trabalhos em grupo organização do tempo dos estudos das leituras e avaliações a sua determinação vai te levar a superar os obstáculos e alcançar os seus sonhos faça essas duas perguntas ao longo da graduação sempre que for necessário os desafios
do seu desenvolvimento fazem parte da caminhada para se tornar um excelente profissional [Música] criado em 2012 a universidade virtual do Estado de São Paulo Unifesp é uma das quatro universidades públicas do Estado de São Paulo e a primeira Universidade Brasileira destinada exclusivamente a educação à distância oferece cursos em três eixos licenciatura letras matemática e pedagogia computação tecnologia da informação ciências de dados e engenharia de computação processos gerenciais administração e engenharia de produção a universidade está presente em mais de 300 municípios e Em centenas de polos espalhados pelo Estado de São Paulo os alunos têm acesso
a infraestrutura internet e computadores garantindo seu espaço de estudos o ensino público Universitário de qualidade impacta no desenvolvimento dos Municípios e na qualidade de vida das pessoas a Univesp é ensino público de qualidade ao alcance de todos Já pensou em ter uma universidade pública em seu município essa é uma excelente oportunidade para promover o acesso ao ensino superior gratuito de qualidade na sua cidade a Univesp Universidade virtual do Estado de São Paulo oferece nove cursos de graduação licenciaturas em pedagogia letras e matemática no eixo de negócios e produção administração tecnologia em processos gerenciais e engenharia
de produção e na área de computação engenharia de computação ciência de dados e tecnologia da informação são 424 polos espalhados em 370 municípios do Estado de São Paulo O que representa mais de 57% do território Paulista como são cursos a distância a presença da Unifesp no seu município é por meio do Polo unidade presencial com toda infraestrutura necessária para que os alunos façam a graduação escolhida e alcance em seus objetivos no Polo os alunos têm acesso a computadores com internet podem se reunir tirar dúvidas e fazer provas e ainda encontram orientação em questões de secretaria
e apoio ao longo do curso qualquer município do estado de São Paulo pode ter uma unidade presencial da Univesp os polos são classificados em pequenos médios e grandes de acordo com o número de habitantes para fazer o credenciamento é fácil todos os detalhes estão no edital que você encontra no site da Univesp tenha um polo instalado até dezembro de 2023 e participe do vestibular de 2024 Universe ensino superior público de qualidade perto de você venha para UNIESP são todos os cursos de graduação são formados por um conjunto de matérias cada uma delas é planejada e
organizada Pelos professores para o aluno estudar e aprender da melhor forma possível pensando assim todas as matérias estudadas na universidade são importantes Pode ser que neste momento não seja possível compreender isso Boa noite Boa noite a todos e todas bem-vindos aqui a nossa Live de revisão da disciplina de sistemas computacionais Eu Sou professora Denise string eu vou apresentar aqui uma revisão em aproximadamente meia hora enquanto isso vocês podem aproveitar para colocar dúvidas no link da descrição do vídeo E aí após um pequeno intervalo eu vou responder as perguntas que vocês tenham colocado tá bom bom
então eu comecei aqui com uma motivação né sobre porque estudar sistemas computacionais né e eu fiz uma analogia aqui com um piloto uma piloto né de Fórmula 1 ou até mesmo de avião de qualquer máquina né então para a gente pilotar de forma eficiente a gente precisa conhecer a máquina então o objetivo de sistemas computacionais é ter noções aí principalmente que a gente chama de baixo nível né que é o hardware né e o software que vem logo acima e desse rádio assim tipo considerar termos de camadas né então o computador ele tem essa característica
né de ter uma estrutura hierárquica ou uma estrutura em camadas e a gente conhece aí essas essa divisão em hardware software Então a gente vai falar um pouquinho de hardware e um pouquinho de software nesses níveis mais baixos aí considerando essas camadas essa disciplina ela abrange uma série de conteúdos que dependendo do curso né são aprofundados em outras disciplinas então o nosso conteúdo ele é bastante extenso né porque ele comporta aí assuntos de disciplinas de organização de computadores de arquitetura de computadores de sistemas operacionais e um pouquinho de linguagem de programação então é Um Desafio
né a gente acomodar todos esses conteúdos né então pouco tempo mas vamos tentar aí destacar né O que a gente viu aí de mais importante durante esse bimestre tá a gente começou aí com Uma Breve História né da computação e eu destaco aqui né um personagem que é considerado em um dos Pais da Computação que é o Jon Bonner junto com o Alan turing né então eles desenvolveram aí as bases que a gente o uso utiliza até hoje em termos de hardware né então nessa foto ele tá à frente aí do do computador né o
ias junto com o open hider né que recentemente foi destaque aí em filme né então assim tem alguns Marcos né do desenvolvimento do computador digital moderno a gente viu essa tabelinha e eu poderia destacar aqui por exemplo um dos computadores né que é dos mais conhecidos aqui que é o Eniac né de 1946 é o próprio comentário aqui diz que a História Moderna dos computadores começa aqui né segundo primeiro computador aí mais parecido com que a gente tem hoje em dia o próprio ias né do Von nome ele tá aqui em 1952 né Tem máquinas
aqui interessantes também como o PDP né que é o primeiro mini computador Ou seja a máquina Saiu um pouco daquela sala gigantesca né E pode ser comercializado então esse aqui teve 50 unidades vendidas né já a versão de 65 aqui né já vendeu 50 mil unidades então a coisa começou a ser mais desenvolvida né em termos de computadores pessoais né um Marco é aqui em 74 a criação do 8080 né que é o chip da Intel que era de 8 bits então o computador a era do computador pessoal né começou mais ou menos aí e
inaugurou o que a gente chama de família x86 né da Intel que é utilizada né uma arquitetura que foi se desdobrando e é utilizada até hoje em dia né Depois tem outros Marcos né como 386 da Intel 1985 E por aí vai né então a gente essa tabelinha vai só até 2001 né mas aí eu espero que o resto da história e você já tem idade para ter conhecimento né bom mas o destaque então é o modelo de vanônimo né que era um matemático que elegrou né para os Estados Unidos ele era de origem Húngara
e ele criou Então essa estrutura né que a gente conhece como modelo de fonoama que é utilizada para descrever as arquiteturas modernas né Então até hoje em dia a gente tem essa ideia de memória né unidade central de processamento que é composta pela Unidade de lógica aritmética né o aluno né no inglês e a unidade de controle e dispositivos de entrada e saída Então essa divisão vem aí do vão noiva uma um destaque também dessa desse modelo né é que a memória ela armazena dados e instruções então tantos programas quanto os dados estão armazenados na
nossa memória principal né então isso vem características já do modelo de Van Então aqui tem uma figurinha né que mostra um pouquinho desse modelo então aqui na esquerda a gente tem né esses três blocos aqui que estão reunidos que a unidade de controle unidade lógica aritmética e os registradores que formam a CPU né a unidade central de processamento elas ela tá interligada por barramentos né que são as vias de dados e de controle né que que conectam todos os dispositivos do computador e eles vai estar conectado com a memória principal e dispositivos de entrada e
saída Então isso é uma outra forma que de visualizar o próprio modelo de vonoima tá então unidades central de processamento ou senta ou centro ao processo em unit né CPU é o que a gente chama de cérebro do computador então ela Executa os programas que são armas na memória principal né em sequência né então existe aí uma sequência e ela também controla todos os componentes e subsistemas através da sua unidade de controle tá então como partes da CPU né recapitulando nós temos unidades de controle que comando funcionamento de cada subsistema busca instruções na memória principal
é decodifica qual é o tipo de instrução né Então essa instrução ela vai ser dependendo do tipo ela vai ser executada ela vai precisar de operandos né então os operando são os dados né esses dados também tem que ser trazidos da memória eles são colocados em porções de memórias internas aqui a CPU que a gente chama de registradores então eles têm resultados temporários né E que são resultado das operações que são efetuadas na unidade lógica aritmética né então a CPU ela tem basicamente aí essas esses três componentes principais o ciclo de máquina então né Ele
é composto por basicamente Três Passos né que é buscar a instrução decodificar essa instrução e a partir dessa decodificação pode ser necessário né dependendo da arquitetura buscar os operandos que também você usados no processamento né e a execução né o computador ele fica eternamente aí nesse nesse ciclo a unidade lógica aritmética tô Como o próprio nome já diz possui aí basicamente três tipos de operação né que são as operações lógicas né operações lógicas normalmente né quem quem trabalha com programação né são aquelas do tipo e ou note né Andy or not então que são feitas
aí nesse caso com números binários a gente tem operações aritméticas como as próprias são subtração de visão multiplicação e tem ainda algumas operações de deslocamento né onde os Beats são deslocados para esquerda ou para direita e eles têm algumas funções aí bem importantes dentro da execução do código tá temos ainda segundo o modelo de vonorama os dispositivos de entrada e saída né ou aí como a gente chama tá cada dispositivo vai ter um controlador e um drive de disco uma estrutura lógica agora com alguns né dispositivos e controladores então a gente vê a CPU ver
a memória a gente está vendo aqui um barramento só tá mas as arquiteturas modernas elas também tem aí uma hierarquia de barramento então por exemplo esse barramento entre a CPU e a memória normalmente ele não é compartilhado com dispositivo de entrada de saída essa aqui é uma visão simplificada tá então a memória ela vai ter sempre prioridade né portanto normalmente que a gente tem é uma estrutura hierárquica também de barramento e esse aqui tá um pouquinho simplificado tá uma característica muito importante né das arquiteturas de computadores são é o seu conjunto de instruções então o
conjunto de instruções de um arquitetura ele é a interface né entre o hardware e o software então ele é muito importante tá a gente aqui dois tipos de conjuntos de instruções que são que a gente encontra em arquiteturas modernas né O cisc que é um pouquinho mais antigo né que vende complexo instruction set com Filter né o computador com conjunto de instruções complexo tem uma filosofia né de projeto onde a gente tem encontro um grande conjunto de instruções e a gente tem instruções simples e tem instruções complexas tá esse tipo a arquitetura x86 né da
Intel que a gente utiliza aqui no nossos notebooks é possui esse tipo de conjunto de instruções tá Porém quando a gente chega numa camada mais inferior de hardware a gente vê que o tipo de conjunto risque desse acaba sendo mais eficiente porque ele tem menos tipos de instruções as instruções são mais simples e significa que elas têm o mesmo tempo de execução nelas elas têm o mesmo tamanho e isso permite um paralelismo interno ao processador então a gente consegue ter mais coisas sendo executadas ao mesmo tempo por exemplo tá então o risque ele ele é
utilizado nas arquiteturas mais modernas né hoje em dia a gente tem visto aí processadores árabe por exemplo que são utilizados né em smartphones etc que tem esse tipo de filosofia né aí então por sua vez né ela trabalha com microprogramação Então as instruções cisque né x86 elas acabam sendo traduzidas para essas instruções mais simples para também terem o mesmo nível de desempenho tá bom E aí a gente faz esse gancho né com outro assunto que a gente teve nessa disciplina que é linguagem de montagem e linguagens de máquina tá então a ideia ou seja esse
conjunto de instruções ele normalmente oferece uma linguagem de montagem né que é que a gente conhece como programação acendem porque isso porque a linguagem de máquina ela é o binário puro né então é aquilo que vai ser executado pelo computador é muito difícil a gente conseguir programar diretamente em códigos binários por exemplo de 32 bits 64 bits então a gente precisa de alguma alguma ajuda aí e isso é dado pela linguagem de montagem né E que a gente consegue fazer uma programação de baixo nível tá então esses mnemônicos eles na verdade passam por um montador
e esse montador faz praticamente uma é quase como uma tradução um para um né então cada instrução de linguagem de montagem vai nos dar uma instrução em linguagem de máquina diferente dos compiladores né que são usados em linguagens de alto nível que aí são softwares mais sofisticados né E que pegam essas linguagens que são mais próximas da nossa forma de falar e traduzem né passam por um processo mais sofisticado traduzem para código de máquina Então existe bastante diferença entre um montador e um compilador bom então isso essa esse conjunto de instruções normalmente é chamado de
instruction set arquiteto né que é o Isa e ele também indica e quais são os resistores né e outras características por exemplo visíveis para os programadores de baixo nível né Então essa é a nossa interface entre o hardware e o software bom tinha um exemplinho na peguei mesmo exemplo aí das aulas de vocês que é o olá mundo né que a gente tem praticamente aí todas as linguagens quando a gente começa a aprender uma linguagem ser o primeiro programa tá e aqui a gente tem num arquitetura não é um programinha em x86 com 16 bits
então aqui a gente tem os mnemônicos né que normalmente são escritos aqui a primeira coisa que aparece né na numa linha de código e a gente tem a instrução move aqui né M ov que é praticamente uma instrução de atribuição né então uma instrução de movimentação você pega o conteúdo que tá aqui na direita e coloca aqui nos registradores que estão à esquerda então a gente consegue ver aqui ó alguns registradores da arquitetura x86 de 16 bits né x BX 8 bits né a parte alta do ax tá então mas isso aqui a gente viu
né de uma forma mais para a gente conhecer né e saber o que que como que isso funciona tá vejam que aqui a gente tem dois duas sessões dentro do código uma sessão de texto que normalmente é a sessão do código então o texto é que é o código e o ponto data aqui é a sessão de dados então aqui a gente tem a nossa string declarada ou a mensagem beber define byte e aqui o hellow old que vai ser escrito na tela então o montador ele vai pegar isso aqui e vai gerar o código
de máquina tá nesse outro exemplo né É só para mostrar que cada arquitetura vai ter o seu conjunto de instruções né então primeiro aqui ó essa figura tá mostrando como é que seria feito o cálculo né de igual aí mais J tá a primeira que seria no x86 né 24 a segunda no Motorola né e a terceira um Spark Spark que é também do tipo risque né então a gente tem aqui três exemplos seja cada arquitetura vai ter a seu conjunto de instruções e por consequência um montadores né que serão diferentes uns dos outros né
Essa figurinha que tem um ciclo de desenvolvimento de um programa sede mais ou menos para situal de quitar que a linguagem de máquina executado né então aqui tá saindo de um modelo ml em altíssimo nível aqui e chegando lá no cantinho inferior direito num programa executável né se a gente toma aqui o caminho de um programa de alto nível eu vou passar por um compilador se a gente toma o caminho de um programa vamos passar por um montador mas no fundo eu vou chegar nos módulos aqui em código de máquina que é um programa que
junta todos esses módulos e chego lá no programa executável bom a gente viu também algumas questões aí de memória né Vimos que a gente tem uma hierarquia de memória acredito que aqui essa nesse canto superior direito que a gente tem o principal né da hierarquia Ou seja a memória principal que a nossa memória RAM ela é mais lenta mas é mais barata portanto ela é a maior memória né Entra a memória principal e o processador a gente ainda tem a memória cache que serve para acelerar a execução a gente não vou falar um pouquinho mais
dela e os registradores que eu já falei que são aquelas porções de memórias que estão lá dentro da CPU né são as mais caras porém são as mais rápidas As Memórias então elas são endereçadas né então a gente sempre vai acessar as células de memória a partir de endereços né E esses endereços eles são numerados lá de 0 a 2 né elevado a n - 1 é o número de bits né então a quantidade de bits da arquitetura influencia normalmente o tamanho dos registradores o tamanho dos barramentos o tamanho da memória então quando a gente
diz uma arquitetura de 32 bits significa que a memória o máximo de memória interessava vai ser dois elevado a 32 - 1 tipos de memória né memória de acesso aleatório Na verdade são praticamente todas as memórias a memória RAM né a gente que a memória principal acesso aleatório significa Justamente que cada célula de memória tem o endereço e eu consigo acessar todas elas de uma forma independente né não é o contrário de Ram é simplesmente uma forma de dizer que a memória é só de leitura tá a memória RAM por outro lado é de leitura
e escrita e ela é volátil a gente sabe inteiro de tecnologia a gente tem a memória estática e a gente tem a memória dinâmica né então a memória dinâmica é a tecnologia da rã memória estática e tecnologia da Cash o problema da memória dinâmica é que ela Elas têm né são compostas por um transistor e um pequeno capacitor e elas vão perdendo né o valor como passar do tempo elas precisam de uma operação de refresh e isso as deixa um pouco mais lentas né O que não é necessário ali nas memórias estáticas a memória cache
então né Ela é uma memória pequena e rápida né E que ela tá mais próxima aqui do processador Então como ela é mais rápida se o dado que a CPU tá trabalhando né está na memória cache ela vai ele vai ter um acesso muito mais rápido que se ele precisar passar né e acessar a memória principal então a Cash ela serve para acelerar o processamento nós temos aí diversos níveis de Cash atualmente né sendo que as menores normalmente são mais rápidas e mais próximas da CPU né E quanto que os níveis maiores são maiores são
um pouco mais lentos estão mais próximos da memória principal depois nós vimos algumas algumas questões aí para melhoria de desempenho né como o pipeline né então no pipeline a ideia né é que a gente Divida a execução das instruções em vários estágios como se fosse uma linha de montagem e eu consiga ir preenchendo esses diversos estágios com as diversas instruções que vem vindo na sequência né então os estágios né normalmente que a gente conhece são o busca de instrução decodificação de instrução cálculo de operando busca de operandos escrita de operando mas os pais Pilares modernos
eles podem ter bem mais estágios do que isso tá então a ideia seria essa né então é que a gente tem Nova instruções se eu fosse executá-las todas na sequência né considerando todos esses estágios eu levaria aí são seis estágios né 54 tempos né períodos de tempo enquanto que seu encolho isso né e começa a Executar a próxima instrução antes de terminar né anterior eu conseguiria por exemplo diminuir aqui para 14 períodos de tempo apenas Então essa é a ideia básica do pipeline tá só que tem alguns nada é tão tão perfeito assim né Tem
alguns entraves né Então os pais Pilares os estágios normalmente não tem instrução igual então eu posso ter alguma contenção e ainda o grande problema dos Pais Pilares que são os desvios condicionais os desvios condicionais são aquelas instruções né que tiram o programa da sequência então normalmente se o programa tá indo na sequência ele vai executar bonitinho quando tá aqui nessa figura porém se eu tiver por exemplo um if né em linguagem de alto nível normalmente o if ele pode fazer um salto né de algum de uma série de instruções eu posso ter um laço né
então laço ele salta para cima e depois de execução e isso tudo em linguagem de baixo nível Causa desvios né então o programa Sai da sequência e a gente pode ter um efeito como aqui nessa figura do lado direito né ou seja o pipeline ele tem que ser esvaziado porque as instruções que estavam todas vindas vindas na sequência não devem ser executadas Então a gente tem que saltar pipeline esvaziado e a gente perde toda aquela execução tá Depois a gente vem um pouquinho também de arquiteturas paralelas e arquiteturas avançadas onde a gente viu que a
gente pode ter e principalmente nas máquinas de hoje em dia não paralelismo físico dentro das máquinas né através dos múltiplos corres Tá e isso pode deixar um programa mais acelerado se o nosso programa for Paralelos se ele utilizar esses vários cortes então o paralelismo é a gente fazer várias tarefas ao ao mesmo tempo tá aqui alguns conceitos né então a programação concorrente não necessariamente indica que a gente precisa ter o paralelismo físico né simplesmente que eu tenho mais de um processo né ou dread sei lá compartilhando recursos então a programação concorrente a gente tem essa
noção de compartilhamento de recursos enquanto a programação paralela eu tenho vários núcleos de processamento físicos né atendendo várias processos e trades simultaneamente E aí a gente consegue ter um efetivamente um maior desempenho vimos algumas classificações né onde a mais conhecida que é bem antiga dos anos 70 é a classificação de flin né então que ele divide aqui né o fluxo de os sistemas né fluxos de instruções e fluxos de dados esses fluxos de instruções e de dados podem ser únicos ou múltiplos né E aí a gente tem as principais aqui classificações que são o SSD
né que é o cisto que seria um programa uma máquina completamente sequencial que é o modelo de home clássico né e no outro canto aqui o Mind né que é o múltiplo struction múlt pota onde entram todas as máquinas paralelas tá o sined single que chamou tipo deita ele existe na forma de aceleradores né ou seja tem uma única instrução sendo executada em vários dados ao mesmo tempo isso acelera também a execução Então eu tenho certo paralelismo tá esse mi SD praticamente assim alguns autores até encaixam alguma coisa aqui mas é difícil você ter múltiplas
instruções para um único dado no dado no momento tá é bom depois a gente vê um pouquinho de sistemas operacionais a gente sobe um pouquinho né a gente estava de organização arquitetura com conjunto de instruções registradores etc e aí vai para o sistema operacional né que é aquele software que nos dá essa interface com o hardware e que gerencia os recursos do computador então aqui a gente tem né pela perspectiva que do usuário né o hardware que a gente tem dispositivos físicos a micro arquitetura linguagem de máquina e o sistema operacional que dá acesso a
esse hardware acima do sistema operacional posso ter compiladores editores interpretadores de comando e mais acima ainda as aplicações sistema bancário uma reserva de passagem aérea e visualizador web né abaixo né Então essas isso aqui já mostra um pouquinho dessas camadas todas que a gente tá vendo aqui bom do Hardware né Ele utiliza muito esses registradores e esse circuitos né todos fazendo aí utilizando isso para gerenciar os recursos os principais tarefas do sistema operacional é escalonamento de processos de gerenciamento de memória né então o sistemas modernos né a gente faz várias coisas ao mesmo tempo abre
diversos programas ao mesmo tempo seja a gente tem diversos processos compartilhando o recurso os recursos né E esses recursos principais são o processador e a memória o escalonador ele faz a gerência do processador né então ele indica quais os processos no determinado momento estão em execução tá e ele vai fazendo ele dá fatias de tempo né para cada processo para a gente tem a impressão tudo tá executando ao mesmo tempo então o escalador de processo ele vai ele vai executar alguns algoritmos né que vão fazer essa seleção tá tem uma uma diferença aí também entre
processos e trades né então normalmente os processos são esses programas em execução e eles podem ter subunidades ali de processamento por assim dizer que são as trevas elas executam dentro do contexto de um processo tá acho que tinha e depois tem o gerenciamento de memória também então a memória é um outro recurso que vai ser compartilhado por diversos processos tá E aí quem faz essa gerência né de qual o processo na memória o que que o processo precisa estar na memória né um porque é composto de dados e instruções esses dados em instruções a CPU
busca da memória então o processador o sistema operacional tem que fazer esse gerenciamento né carregar os programas na memória e gerenciar esses processos tá bom que mais né bom quando a memória RAM né não é suficiente né a gente ainda pode né é possível utilizar né o disco para compor essa memória RAM né E aí a gente chama isso de memória virtual né então o sistema operacional ele também é responsável por fazer esse tipo de gerenciamento né a gente tem algumas técnicas né de memória virtual que a gente viu a paginação né onde o processo
ele é quebrado em páginas de tamanho fixo e a segmentação que na verdade divide em blocos né mas esses blocos são divididos em seguimentos e cada segmento tem um objetivo diferente né então pode ser por exemplo um segmento de texto que é aquele segmento onde tem código por exemplo e um segmento de dados né uma outra Ah bom já terminando aqui a parte dos sistemas oferece mais depois do intervalo se restar alguma pergunta né Vocês podem podem fazer aí pelo pelo link tá terminando aqui eu ia falar que da chamada de sistema ainda que é
uma forma pela qual que o sistema operacional oferece para que os programas de alto nível de alto nível acessem aí a dispositivos em geral como dispositivos de entrada e saída Então vamos chamar o intervalinho que já deu a nossa meia hora e daqui a pouquinho a gente volta o número natural representa um valor exato ele nos ajuda a saber quanto pagamos por um alimento no mercado ou quanto temos de dinheiro mas nem sempre foi assim a história dos números nasceu da necessidade do homem de estabilizar um dos primeiros sistemas numéricos da história da humanidade foi
o egípcio nele uma imagem era associada a um objeto por exemplo um bastão representava uma unidade um calcanhar representava 10 unidades os símbolos Romanos apareceram em seguida também com bastões o número 5 representava os cinco dedos de uma mão [Música] o sistema numérico utilizado hoje é o indo-arábico a criação do zero gerou grande discussão entre os matemáticos da época eles acreditavam que não poderiam atribuir uma representação a algo que não tem valor o número zero foi introduzido centenas de anos depois será a próxima invenção da matemática [Música] o computador é uma ferramenta indispensável na vida
moderna de qualquer pessoa e empresa é resultado de uma grande evolução tecnológica utilizado no trabalho e na vida pessoal para diversos fins como guardar documentos fotos escrever textos pagar contas ou seja grande parte da nossa vida é armazenada em computadores para uso pessoal temos os desktops ou computadores de mesa os laptops e os smartphones dispositivos móveis que nos acompanham em qualquer lugar existem também o super computadores que são de grande porte e tem enorme capacidade de processamento utilizados para aplicações específicas e também para cálculos de tempo e de estudos climáticos cálculos complexos de física que
as cidades inteligentes aproveitam seus recursos de maneira criativa e sustentável para melhorar a vida de seus habitantes utilizam a tecnologia para criar sistemas que integram infraestrutura comunicação e serviços internet das coisas Inteligência Artificial e Big Data são exemplos de tecnologias que promovem esses objetivos a decisão do uso dos recursos é feita com a participação do Cidadão as cidades inteligentes já são uma realidade em alguns lugares do mundo como Nova York Amsterdam e Tóquio no Brasil a cidade de São José dos Campos no Estado de São Paulo é um exemplo passou a ser conhecida pelo uso
das tecnologias E também pelas boas práticas de gestão que impactam a qualidade de vida da população a moeda é um objeto que representa o valor de algo e estabelece relações comerciais surgiu na região da Turquia no século 7 antes de Cristo para substituir a troca direta de produtos entre as pessoas o escambo [Música] naquela época era importante ter maior conforto levando apenas a representação dos bens e não os bens em si o que para alguns seria impossível [Música] atualmente o conjunto de ativos que move a economia também é chamado de moeda cada país ou grupo
de países tem a sua própria moeda no caso dos Estados Unidos é o dólar em muitos países da Europa é o euro no Brasil já foram moedas como o Cruzeiro o Cruzeiro Novo o cruzado e atualmente o real [Música] as cédulas de dinheiro surgiram muito tempo depois mas isso é outra história [Música] Olá pessoal tudo de volta então como a gente não recebeu ainda nenhuma pergunta vocês fiquem à vontade para colocar aqui no nosso link na descrição do vídeo eu vou continuar um pouquinho mais aqui na em sistemas operacionais e também falar um pouquinho das
dos exemplos né de simulação que a gente viu em linguagem C Tá bom então eu tava aqui na chamada de sistema né então por exemplo quando vocês estão programando pode ser linguagem ser mesmo né a gente faz um acesso a um arquivo né Vamos abrir um arquivo escrever alguma coisa a gente tá usando um recurso do sistema operacional né porque o sistema operacional ele também gerencia arquivos abertos por exemplo né Então as chamadas de sistemas são importantes né nesse contexto de interface entre o processo entre os processos e o sistema então é a forma com
que os nossos programas utilizam os recursos do sistema operacional tá a gente ainda viu também interrupções né que são mecanismos que servem para interromper o processamento normal da CPU então a gente viu que os processos né eles passam por diversos estados né eles estão prontos eles vão para o estado em execução né eles vão para o estado finalizado eles têm alguns Estados intermedi um estado de espera por algum recurso né então esses recursos por exemplo podem ser os recursos de entrada e saída E aí esses recursos de entrada e saída são acessados a partir de
interrupções de entrada e saída né a gente pode ter outros tipos de interrupções como falha de hardware né interrupção por temporização ou seja o que é o escalonamento próprio escalonamento do processo seja terminou o tempo do processo na CPU ele tem que dar espaço para que o próximo processo da fila normalmente o sistema operacional implementa nas fibras de execução então eles sai do Estado de execução então ele é interrompido também pelo próprio sistema operacional né Tem as interrupções de programa que são feitas também que são os traps né que podem ser utilizados para depuração então
quando a gente entra num programa começa a depurar e a gente executa o programa passo a passo então após cada execução cada instrução o programa é interrompido né então assim tem opções também são recursos bem importantes aí nos sistemas computacionais bom e aí a gente viu um pouquinho de linguagem C né como o objetivo de ter uma visão um pouquinho mais prática né sobre paginação e particionamento fixo então tinha a gente tinha dois exemplos em linguagem C E para isso a gente viu alguns recursos da linguagem C Como os ponteiros e estruturas né Então a
partir desses dois conceitos né foi apresentado ali um programinha para simular esses dois conceitos de paginação e Simulação esse primeiro aqui é o exemplo de paginação né então aqui a gente já vê né o uso desses dois conceitos de linguagem C que foram vistos na disciplina né então tem Pipe DF como uma estruct né então uma estupro serve aqui para a gente conseguir agrupar né alguns Campos né que antigamente acho que se chamava de registro né É então eu consigo criar um novo tipo de dado que tem Campos de tipos diferentes tá um deles aqui
é um tipo ponteiro né então a gente nessa nessa simulação aqui a gente tinha as páginas né que são colocadas em disco e a gente tinha os frames né que seriam correspondentes dessas páginas na memória RAM né então a gente tinha duas estruturas aqui Uma para representar uma página e a outra para representar um Frame a estrutura da página tinha um ponteiro para o frame né então por isso a gente viu esses dois conceitos de linguagem C tá duas posições ou seja memória ramalmente Ela É menor né que a complemento da memória virtual que fica
em disco e indico é que a gente tinha 20 páginas né então A ideia é mapear páginas que estão sendo utilizadas né O que são sendo mais utilizadas na memória RAM né então é a mesma analogia ali que a gente tem com a memória cache tá bom E aí aqui a gente tinha a inicialização da ram né um dos os demais itens aqui dentro dessas estruturas é um Beat de validade aqui na página do disco e o conteúdo que aqui tá simplesmente colocado como um caracter bom e aqui a gente tinha então um vetorzinho né
do tipo frame que ela simula a nossa memória principal que é a Ram e um disco aqui de 20 posições tá aí depois tem aqui a inicialização da ram né e a inicialização do disco E aí aleatoriamente foi escolhidas aqui que a quinta e a décima página do disco são as mais utilizadas né que são as páginas que teria como seriam como conteúdo né os caracteres e os caracteres J tá E aí uma coisa interessante aqui ó é que quando a gente vai preencher essas páginas né que vão ser colocadas na rã aqui na posição
correspondente no disco aí a gente usa o ponteiro essas posições essa posição aqui esse campo né página virtual que é o PV vai o endereço para a rã né bom depois existe aqui uma impressão né Toda esse conteúdo na tela é que a gente tem na janelinha do lado aqui a simulação né então o disco então Ó tem com todas todas as suas 20 páginas em especial a página que tem o conteúdo e a página que tem um conteúdo J apresentam aqui né no campo ham um endereço de memória porque essas duas páginas estão mapeadas
na memória principal tá E aí quando a gente visualiza aham o conteúdo né o mesmo e j e o bit de validade tá em um Então esse era a nossa nosso primeira simulação né falava um pouquinho aqui também de multiprogramação tem sistemas operacionais modernos né que a gente comentou que tem vários processos vários programas abertos ao mesmo tempo se a gente chama de multi programação Existe algum sistemas mais antigos né que trabalhavam apenas com mono programação E aí a ideia é dizer como como isso como vai ser alocada a memória para os processos né então
como é que essa memória é repartida então a gente pode ter partições de tamanho fixo partições de tamanho variável né e partições de tamanho dinâmico tá e tinha um outra simulaçãozinha aqui né que justamente mostrava os processos sendo alocados né e desalocados né então A ideia é que é que a gente tivesse diversos processos né então o que tá mostrando o particionamento aqui era particionamento fixo né os processos aqui tem nomes aleatórios né que aqui nesse caso nesse exemplo foram colocados os nomes de comandos mas isso aqui é só só por exemplo né E aqui
ó todas as partições estão alocadas e aqui foi simulado que dois processos terminaram né então o que acontece quando um processo é colocado em execução Na verdade é um programa né que tá lá no disco e sistema operacional coloque em execução ele tem que alocar uma partição onde vai ficar os dados desse processo as instruções né registradores tudo que é necessário para que esse processo consiga executar né quando ele finaliza ele libera essa memória né então aqui foi simulado a liberar os bichos de validade que ficou em zero e elas foram legais Bom eu acho
que isso termina né tem a nossa bibliografia aqui eu vou ver se chegou mais alguma pergunta tem uma pergunta aqui sobre a linguagem a sempre né que a questão da sintaxe deixa eu colocar aqui então lá na nossa figurinha onde tinha pelo menos um programinha Acende essa aqui tá certo que esse programa aqui ele é bem simplesinho né Com certeza a linguagem a sempre né Ela não é uma linguagem simples tá exige aí Alguma dedicação para aprender certo mas ela é uma linguagem uma das características né E que foi colocado né também na disciplina é
que ela é uma linguagem que a gente chama de pré-fixada tá então a primeira coisa que a gente tem que perceber é que a instrução é a primeira coisa que aparece em cada linha de código né a gente tem um comando em cada linha né normal mas a instrução é a primeira coisa que aparece tá isso porque normalmente quando isso transformado para linguagem de máquina os primeiros bits né do dessa dessa instrução é o que a gente chama de Up code vai ser o código da instrução Tá e isso é uma definição de arquitetura quantos
bits estão aqui por exemplo a gente tinha uma linguagem de 16 bits que é bem pouquinho né então quantos bits desses 16 estarão O código vai estar o código então normalmente sei lá Digamos que sejam eu não lembro exatamente como é o formato né do x86 de 16 bits mas Digamos que os primeiros cinco bits sejam para instrução Isso quer dizer o quê né que eu vou ter um código binário para cada para cada instrução tá então move que tá aqui M ov vai ter um código certo quantas instruções eu poderia ter numa linguagem onde
tem cinco bits 2 elevado a 5 então poderia ter 32 instruções nessa linguagem porque o Up code é de cinco bits né Mas normalmente né nessa nesse formato o Up code a primeira coisa por isso né que na linguagem há sempre a instrução é a primeira coisa que aparece sempre então se eu vou fazer um moving a primeira coisa que vai aparecer aqui que a nossa atribuição é o mnemônico né que me lembra o que que o que que essa instrução faz então move de movimentação mesmo então eu tô movimentando que que tá fazendo essa
primeira linha Ó tá pegando 40 hexa então isso aqui é um que a gente chama de valor imediato né então o valor que eu quero ele está na próxima na própria instrução então é o caso da grande maioria aqui ó a não ser nessa quarta linha que onde eu tenho movie DX vírgula msg que que significa isso eu tô fazendo uma atribuição aqui para o registrador de X mas desse rótulo msg aqui é um rótulo um rótulo ele é basicamente né uma linha de código é o endereço para aquela linha se a gente olhar aqui
embaixo ó onde eu tenho o ponto data eu tenho Messenger aqui ó msg Então na verdade o que ele tá dizendo isso aqui é um endereço Que endereço é esse da primeira posição dessa string dá para fazer uma analogia com um vetor em linguagem C né então a variável ali que aponta né para a primeira de um vetor linguagem C é o seu endereço zero né é onde ele começa Então msg na verdade aqui com o endereço do H certo então o que que ele tá fazendo ele tá carregando no registrador de X este endereço
de memória que é onde começa a string então isso aqui é uma outra um outro tipo de atribuição né quando ele chama 2021 H Isso aqui é uma interrupção né então isso é uma interrupção que vai passar todas essas informações todos esses registradores que são carregados aqui antes de chamar então são parâmetros né interrupção né que que ela vai fazer ela vai veja que aqui por exemplo cx ele colocou 11 se a gente for contar aqui deve ser o tamanho da string um dois três quatro cinco seis sete oito nove 10 11 que que isso
quer dizer que ele vai a partir do endereço zero de mensagem ele vai imprimir 11 mulheres certo essa outra interrupção aqui embaixo deve ser para finalizar estrias aqui hoje eu não tô bem lembrada mas essa aqui com certeza é para imprimir o hello world aqui tá então todas as instruções elas vão ter esse formato eu vou ter primeiro a instrução depois os parâmetros da instrução então eu acho essa aqui tá meio ruim de enxergar né mas ó aqui a gente tem nesse segundo exemplo que também é um trechinho de código só né então o trechinho
de código há sempre esses oito meses só que aqui já é 32 bits como é que eu sei porque a gente tá trabalhando com registradores estendidos Então esse eax é a extensão do ax tá o a x era da arquitetura 16 bits quando foi criada arquitetura 32 bits da família x86 estendeu-se o ax então o eax agora tem 32 bits então o que que ele tá fazendo olha quer fazer ir mais J tá veja que ó aqui de novo o Up code a instrução é a primeira coisa que aparece né na instrução uma linha de
instrução e aí eu vou fazer a movimentação que que ele faz normalmente ó no x86 o registrador destino é a primeira coisa o primeiro parâmetro pode se dizer que aparece ali na instrução e o segundo parâmetro é o origem que a gente chama né então ele tá colocando no registrador é x u i a variável e então o conteúdo da variável I vai para o registrador e a x porque que ele já não faz né veja que aqui embaixo tem o Ed já né que é a soma aí ele tá fazendo eax que agora tem
o conteúdo de I somando com J e o resultado fica no eax como é que eu sei isso a gente tem que estudar o conjunto de instruções e saber como é que ele funciona tá aqui nos comentários o lado tá dizendo Exatamente isso o ex agora vai receber o i + j porque ele vai somar nele mesmo tá Por que que eu não faço direto a Ed e vírgula J porque o a sempre do x86 não faz não existe essa soma memória com memória tá um dos operando tem que pelo menos um dos operandos tem
que estar num registrador certo então isso também a gente aprende né estudando a linguagem certo são restrições da linguagem tá então primeiro ele carregou é x com i tudo isso para fazer uma linha de código embolagem de alto nível é assim mesmo tá então ele carregou o hino é a x depois ele já somou J no eax e o que que falta o ex é um registrador né conforme eu comentei né No início da nossa revisão ele tá lá dentro da CPU só que eu quero colocar quero guardar salvar o resultado dessa dessa instrução numa
variável de memória certo então eu tenho que fazer isso explicitamente ó então ele tá fazendo um move ele tá fazendo movie doer a x para o n agora sim ele colocou na memória ou seja precisei né para colocar uma linha de linguagem de alto nível eu precisei de três linhas em linguagem de máquina tá bom de montagem bom a gente tá chegando no finalzinho espero aí que vocês tenham gostado né da nossa Live e eu estou à disposição Tenham todos uma boa [Música] [Música]