Eu concordo, mas só Brazuca não, eu pessoalmente nunca encontrei alguém que explicasse do jeito que o Akita faz nem em Ingles nem em Italiano, ficaria muito feliz se alguém pudesse me indicar algum canal que foi feito desde o começo pra funcionar como uma curadoria de conteúdo, organizado pra ser assistido desde o começo até o final em ordem, referenciando os conteúdos anteriores e cobrindo uma base bem respeitável de conhecimento gerais necessários de cada assunto. To assistindo esse vídeo 4 anos depois da criação dele e é 100% atual, isso é fantástico.
Resumiu minha matéria de SO da graduação em menos de 1 horas. Akita, não tenho perdido nenhum dos seus vídeos hahaha, fica aqui meus agradecimentos pela qualidade do conteúdo do seu canal. Abraço. vlw.
Esse canal é um tesouro para uma pessoa curiosa como em querer entender mais afundo as coisas, sou assim a ponto de no dia a dia eu ter que me segurar em não pesquisar mais afundo algo que usei e não apenas entender o necessário para poder aplicar e resolver algum problema, muito obrigado akita por ter criado esse canal.
Fui assistindo, relembrando as aulas de Sistemas Operacionais da faculdade, e finalmente tapando buracos de conhecimento que tinham ficarado de lá pra cá. Bom trabalho, Fábio!
Vou confessar algo. Sou público alvo desta série. 42 anos e iniciando em progamação. Agora a confissão: tenho de assistir cada vídeo da série mais de uma vez. Não dou conta de assimilar toda esta informação. Ufa falei. Com isto não penso estar fazendo uma crítica direta. Considero que a série é excelente e tem me ajudado muito. Também não saberia dizer como simplificar. Gosto do percursso histórico e das metáforas que os acompanham. Até me identifico muitas vezes. Também eu usei monitores em tons de verde e o Msdos. Também fiquei surpreso com a interface gráfica do windows e a possibilidade de navegar entre as pastas com o cursor. Me encantei com a chegada do open source e a revolução extraordinária do universo mobile. Enfim, dou força ao #akitando. Vamos em frente. Ainda que, no meu caso ao menos, isso signifique retornar aos vídeos antetiores uma, duas, ou sei lá quantas vezes :-)
Fabio Akita, mt obrigado de verdade, eu sou um rapaz de 25 anos com metade de um curso de SI em uma federal do nordeste que por acaso do destino arranjei um trabalho e fiquei encarregado de lidar com tarefas como scraping de dados das plataformas da empresa como (salesforce, Zendesk, etc) e o desenvolvimento de algumas a APIS the conexão como sharepoint, Google drive para armazenamento e manipulação dos arquivos dos scraps pos processados, tudo isso em nuvem e não tem ninguém para me ensinar nesta empresa. Gosto bastante de programar e graças aos seus vídeos estou sabendo me direcionar para fazer algo que minimamente funcione. Muito obrigado.
A gente que é mais nova usa o computador hoje de uma forma tão fluida e nem imagina o tanto de coisa que já aconteceu para termos isso hoje. Parabéns, Akita!
Estou vendo o vídeo pela terceira vez, anotando cada detalhe para poder pesquisar mais afundo. Eu sinceramente estou maravilhado com esse conteúdo raro! Fiquei também impressionado sobre Reactor Pattern já possui tanto tempo de amadurecimento. Certeza que depois desses vídeos serei um programador melhor, obrigado por despertar a curiosidade com um foco plausivel, abrir meus olhos e enxergar um mundo que não é demonstrado devidamente em faculdades quanto menos em mercado. Fábio Akita, parabéns por compartilhar seu conhecimento e se dedicar tanto pelo canal e conteúdo!
Essa comparação entre Chef+Garçon com o epoll foi a mais pedagógica que já vi! Achei justa a fala sobre o NGINX, mas fiquei com vontade de provocar sobre o Varnish, que também tem seu lugar ao sol quando se trata de entrega de conteúdos estáticos.
Um curso de sistemas operacionais em 42 minutos, muito bom parabéns mesmo. Ministro aula de sistemas operacionais e não chego a detalhes que você comentou, muito por que as vezes os estudantes não veem a importância disso para ser um bom profissional. Parabéns por sua série e gostaria que não parasse de trazer videos muito importantes como esse.
Adicionando um pouco ao tópico: se você tem paralelismo, é imposto que você tem concorrência, mas nem sempre quando você tem concorrência você tem paralelismo, como o Fabio Akita falou sobre o time slicing. Assincronia também impõe concorrência. Assincronia é basicamente uma situação onde uma instrução possui tasks que podem iniciar dela, sem precisar ficarem bloqueadas por outras(você pode forçar um bloqueio, com o conceito de await). Você pode obter assincronia tanto na forma single thread(com event/message loops, por exemplo) quanto na forma de multi threading. De uma forma geral, existem 2 tipos de situações bloqueantes: relacionados a I/O, e CPU. Problemas de I/O sempre foram pertinentes, como o Fabio Akita falou em 30:54, de nada adianta ter um processador com concorrência se o barramento de I/O vira um gargalo. Por ultimamente a maioria dos bloqueios no mundo de desenvolvimento web/sass serem ocasionados por I/O, o javascript+web api/node.js trouxeram mais a tona o conceito de assincronia, através do I/O assíncrono, usando event loop. Agora assíncronia não é estritamente relacionado única e exclusivamente a I/O. Existem tasks que podem ser bastante intensivos pra CPU: pensem num processamento da ordenação de uma lista gigantesca de números. Um exemplo de algoritmo para resolver isso é o merge sort, que aplica o conceito de "dividir e conquistar" usando multi threading e paralelismo quando disponível. Nesse esquema uma programação I/O assíncrona single threaded de nada adianta para ajudar no processamento, os callbacks com os cálculos serão executados de forma síncrona na call stack por ser justamente single thread. Esse tipo de bloqueio mais limitado a CPU é mais presente em machine learning, data science, inteligência artificial e etc. Portanto, cada macaco no seu galho. O java nativamente por exemplo pode fazer assincronia somente através da utilização de threads, pois a jvm não possui por exemplo um event loop(existem libs como vertx.io e spring webflux que adicionam essa possibilidade). O node.js faz assincronia de I/O em single thread utilizando o event loop + API do C++ + fila de callback, pra trabalhos mais CPU bound o node está em fase experimental desde a versão 10.5 no uso de multi threading. O C# além de threads também pode através do async/await(compilador + state machine).
Melhor conteúdo q já encontrei falando sobre multi-processo e multi-thread. Sempre ensinei as pessoas das minhas equipes nesse tópico quando se aprofundavam em C, mas realmente me faltava essa noção das diferenças de custo e problemas entre os sistemas operacionais. Uma coisa que é muito importante ressaltar é que existia um ponto negativo no uso de threads no que tange o uso de memória. Em um sistema compilado em 32 bits, cada processo só podia alocar no máximo 4 GB de memória. Se vc utilizasse multi-thread, o limite de 4 GB valia para todas as threads. Dando fork, cada processo tinha seu próprio espaço de memória e podia alocar até 4 GB, o que viabilizava trabalhar com um volume maior de dados em memória em cada processo (e podia fazer com que ele finalizasse antes de atingir o limite, caso houvesse um memory leak).
Fábio já pensou em disponibilizar seus vídeos em formato podcast? Por exemplo no Spotify. Digo isso por que seria muito bom poder ouvir o conteúdo desse vídeo (que é super longo) no metrô por exemplo. Esse video foi muito útil pra mim pois estou estudando sistemas operacionais pra poder entender paralelismo descentemente. Ver todo conteúdo resumido de forma simples me ajudou a entender e montar uma road lógica do que estudar pra masterizar paralelismo. Muito bom!
akita SEM PALAVRAS estes teus videos, cara eu leio pra caralho e NÃO SABIA deste BO das threads no linux até 2006, lembro que voltei a usar linux ali por 2008 , alias TENTEI e incrivel saber que hoje ele é MUITO MELHOR e aqui vemos um porque e ai nestes teus videos estou vendo algumas explicações, surreal, foda mesmo, obrigado. Como meu pai sempre falou, a gente está sempre aprendendo algo, incrivel mesmo. Incrivel como quanto mais estudamos, mais vemos que pouco sabemos kkkkk, é foda ... vamos que vamos kkkkkk Há e quando digo que é muito melhor não falo de ser melhor que windows ou macos , e sim que ele melhorou em relação a si mesmo, incrivel.
Cara, tu me ajudou a entender um problema que ninguém conseguia me explicar até hoje de maneira simples: Por que o NodeJS consegue atender milhões de conexões possuindo apenas uma thread e o Java não, sendo multi thread. O multi thread fazia todo o sentido pois em processadores multi core/ multi thread, todos os recursos de hardware seriam utilizados e as threads seriam processadas em paralelo. Mas utilizando threads bloqueantes, há gastos enormes com a troca de contexto (Tanto de processamento quanto de memória) e isso limita o número de conexões que uma aplicação Java baseada em Servelets pode atender. O Node pode atender muito mais pois esses recursos não ficam bloqueados, eles ficam pendentes de eventos do S.O. Então isso significa que no Java há paralelismo real e mais rápido em processar um certo número de conexões e que o Node mais lento (Pois não há paralelismo real, já que o Event Loop é single thread) mas consegue atender mais conexões concorrentes. Cero?
Em resumo, não há nada que o node.js faça que Java, ou C, out C++, out Python também não consiga fazer. Por isso muitos componentes de servidor importantes são feitos em Java ou C (como um NGINX ou Cassandra). A diferença mais é que Node é mais "facinho" de começar. Só isso. Mas ele não chega até onde outras linguagens mais decentes chegam pelas várias limitações que ele tem (falta de thread nativa sendo só uma delas)
Caramba Fábio, sou estudante de ciências da computação e já acompanho a um bom tempos seus vídeos. Por algum motivo acabei vendo este somente hoje e tenho que tirar o chapéu 10x pela didática e objetividade que você tratou o tema. Da pra ver que tem um carinho imenso na elaboração do conteúdo. Quem me dera ter visto esse vídeo quando estava estudando SO1 xD.
Meu professor de sistemas operacionais da faculdade em 2013 certa vez falou: "Décadas atrás, os recursos de uma máquina era disputado a tapa pelos processos"
Relembrando muita coisa com seus vídeos. LLVM, scheduler, etc... Tinha coisas da história que nem lembrava mais... Assisti três vídeos que eu estava atrasado, agora estou em dia no canal. Parabéns pelas aulas!
No momento agora estou nos EUA sem PC notebook só o Note 8 da Samsung Galaxy note agora só assistir ou interagir simples mas em junho estarei com certeza procurando esse gênio humilde porém nunca bobo.
Akita, ja assisti 2 vezes, nesta segunda tomando nota, criando infograficos, fluxos e etc e provavelmente tera uma 3, talvez agora estou conseguindo criar a imagem na cabeça de como isso funciona, nada na pratica ainda mas ja ajuda muitoo!!! Não sei exatamente sua motivação de criar este conteudo, mas fica aqui sinceramente o meu MUITO OBRIGADO!!!
Muita gente se achando burro por ter que assistir mais de uma vez pra aprender. Porém, isso é exatamente o que você tem que fazer. Pra entender, talvez você precise assistir uma ou duas vezes, mas pra aprender você vai ter que assistir dezenas de vezes. E convenhamos, você não tem nada melhor pra fazer...XD
Muito massa, me lembrou do capítulo do livro de Delphi do Cantu que falava de programação em thread... Muito interessante e o teste era fazer contadores em paralelo e você via a diferença de velocidade em função do escopo de variáveis e as diferenças das várias estratégias de programação paralela... Sugestão: faça um vídeo detalhando o Minix do Tanembaum... Abraços!
Muito, mas muito bom. Tô maratonando seus vídeos aqui. Achei que já sabia uns 2%, depois do terceiro vídeo teu vi que devo saber uns 0,02% kkkk. Muito bom aprender dessa forma vindo de gente que realmente sabe o que está falando e em português ainda. Valeu. Abraço.
Eu fiz um trabalho da faculdade esses dias que era sobre sistemas operacionais , mais especificamente sobre threads , programação multithreads , estados de threads e por ai vai ... e essa sua playlist de entendendo back-end ajudou muito cara . Vlw kkk
Muito legal sua didática e otimas analogias. Continue sempre fazendo conteúdo legais assim. No minuto 30:11 você disse: "um servidor do WhatsApp hoje serve mais de 2 milhões de conexões simultaneas", mas os protocolos tcp ou udp so podem endereçar 2^16=65535 que seria o maximo de conexões que poderia ficar estabelecidas ao mesmo tempo.
Eu estava estudando a infra estrutura do Telegram e me deparei com esse event looper e uso de epoll do linux para conseguir responder a quantidade de requisicoes que eles recebiam. Isso me ajudou a criar meu aplicativo utilizando esta implementacao no codigo nativo JNI para controle de notificacoes push e ping pong de servidor cliente com sincronizacoes off-line first.. foi a unica forma que consegui resolver Parabens pelo video, conteudo muuito complexo visto de uma forma clara e sem paixão voce é demais
Caraca...uma palestra a Jato...cada vídeo daria uma palestra de 2 horas ou mais com certeza.... parabéns ao Akita pela eficiência em agrupar tanta informação de forma sequencial, seguindo a linha de raciocínio...TOP
Que video sensacional. Há alguns meses virei entusiasta em usar threads em aplicações Java. Acho uma tecnologia incrível e facilita mto o serviço em cargas pesadas de trabalho. Ótima explicação!
Curioso ver tudo isso na faculdade mas, pela falta de experiência naquela época, não fazer tanto sentido como agora. Sempre bom revisitar as bases. Muito obrigado pelo conteúdo!! 👏🏼👏🏼👏🏼👏🏼
As ferramentas CAD com que eu trabalho tem vários problemas de performance devido a concorrências e paralelismos.. Essa aula me ajudou a entender um pouco mais as limitações que elas possuem.
Quando comprei meu primeiro Mac em 1999, um PowerPC G3 233MHz, ele fazia, com o MacOS 9 algo que parecia bruxaria à época: Ele conseguia gravar audio ao mesmo tempo que executava vários arquivos de audio ao mesmo tempo.
Muito bom assistir esses vídeos do Akita. Recordei me das aulas de sistemas operacionais, onde vi conceitos de região crítica semáforos. Processos e Threads. Problemas do filósofos comendo macarrão. Kkk
Rapaz, fiquei até com dor de cabeça com tanta informação, hahahaha Uma dica a quem passar por aqui e é iniciante(como eu): não achem que isso é tutorial, pois não é, e ele também não caga regra, eu instalei direto o ubuntu como sistema principal(nada de dual boot, tirei o windows da minha vida), to sofrendo com algumas coisas(quase espanquei minha impressora hoje, mas de tanto ser ameaçada deu certo, hahahaha), e dispensei o arch linux que ele sugeriu por exemplo! Quem quer seguir tudo que ele passa à risca vai no vídeo: não terceirize suas decisões, pois vocês entenderam errado, hahahahahahaha(indico esse vídeo pra todo mundo) Abraços Akita, excelente conteúdo!
obs: Quando se fala de troca de contexto, basicamente está se falando em salvar o contexto dos registradores para uma thread. Basicamente é salvar os valores dos registradores da cpu na estrutura da thread. Isso é o context switch feito por software, mas existe o salvamento feito em tss e esse é o context switch feito por hardware. Por fim, é importante lembrar que quando o sistema operacional possui estrutura de thread e estrutura de processo, então o processador vai lidar com threads. Mas sistemas antigos só tinham estrutura de processo e o contexto dos registradores eram salvos na estrutura de processo mesmo.
Lembro até hj como simular as threads preemptivas no Windows 95/98 usando processador single-cores, era só tocar uma música no media player e abrir o browser em seguida, q era notavel como o scheduler de processos trabalhava, pois para dar conta dos dois processos intercalando de tempos em tempos em cada um dos processos, o som do media player sofria varios cortes a cada segundo enquanto estava carregando o browser.
Com tantos exemplos da vida real, utilizados para exemplificar a computação, fica ainda mais claro que estamos imitando a vida real ao escrever sistemas :)
Se poder fazer alguns cursos de programação, certo que já tem em alguns canais Mas queria ver você ensinando, como Node.Js Python C# ou outras é ferramentas essenciais que todo programador tem que saber hoje para iniciar
O MELHOR CONTEÚDO DE COMPUTAÇÃO BRAZUCA NO RUclips. OBRIGADO
Eu concordo, mas só Brazuca não, eu pessoalmente nunca encontrei alguém que explicasse do jeito que o Akita faz nem em Ingles nem em Italiano, ficaria muito feliz se alguém pudesse me indicar algum canal que foi feito desde o começo pra funcionar como uma curadoria de conteúdo, organizado pra ser assistido desde o começo até o final em ordem, referenciando os conteúdos anteriores e cobrindo uma base bem respeitável de conhecimento gerais necessários de cada assunto.
To assistindo esse vídeo 4 anos depois da criação dele e é 100% atual, isso é fantástico.
Tô é ficando desesperado com tanta informação, haha!
Resumiu minha matéria de SO da graduação em menos de 1 horas. Akita, não tenho perdido nenhum dos seus vídeos hahaha, fica aqui meus agradecimentos pela qualidade do conteúdo do seu canal. Abraço. vlw.
Esse canal é um tesouro para uma pessoa curiosa como em querer entender mais afundo as coisas, sou assim a ponto de no dia a dia eu ter que me segurar em não pesquisar mais afundo algo que usei e não apenas entender o necessário para poder aplicar e resolver algum problema, muito obrigado akita por ter criado esse canal.
Fui assistindo, relembrando as aulas de Sistemas Operacionais da faculdade, e finalmente tapando buracos de conhecimento que tinham ficarado de lá pra cá. Bom trabalho, Fábio!
Vou confessar algo. Sou público alvo desta série. 42 anos e iniciando em progamação. Agora a confissão: tenho de assistir cada vídeo da série mais de uma vez. Não dou conta de assimilar toda esta informação. Ufa falei. Com isto não penso estar fazendo uma crítica direta. Considero que a série é excelente e tem me ajudado muito. Também não saberia dizer como simplificar. Gosto do percursso histórico e das metáforas que os acompanham. Até me identifico muitas vezes. Também eu usei monitores em tons de verde e o Msdos. Também fiquei surpreso com a interface gráfica do windows e a possibilidade de navegar entre as pastas com o cursor. Me encantei com a chegada do open source e a revolução extraordinária do universo mobile. Enfim, dou força ao #akitando. Vamos em frente. Ainda que, no meu caso ao menos, isso signifique retornar aos vídeos antetiores uma, duas, ou sei lá quantas vezes :-)
Não é nenhuma vergonha isso não!! Muito pior seria assistir tudo sem ter entendido e nunca voltar pra ver os pontos de dúvida. Valeu!
Fabio Akita, mt obrigado de verdade, eu sou um rapaz de 25 anos com metade de um curso de SI em uma federal do nordeste que por acaso do destino arranjei um trabalho e fiquei encarregado de lidar com tarefas como scraping de dados das plataformas da empresa como (salesforce, Zendesk, etc) e o desenvolvimento de algumas a
APIS the conexão como sharepoint, Google drive para armazenamento e manipulação dos arquivos dos scraps pos processados, tudo isso em nuvem e não tem ninguém para me ensinar nesta empresa.
Gosto bastante de programar e graças aos seus vídeos estou sabendo me direcionar para fazer algo que minimamente funcione.
Muito obrigado.
Espero aprender muito mais com você 🎉
22:25 fork... copy on write
24:18 pthreads... bugs... 1 pra 1, linux 2.6
25:58 scheduling... macOS, multimídia
29:35 c10k... async events
33:30 apache
35:45 nginx
36:40 event loop, reactor pattern
39:57 concorrência x paralelismo
A gente que é mais nova usa o computador hoje de uma forma tão fluida e nem imagina o tanto de coisa que já aconteceu para termos isso hoje. Parabéns, Akita!
Estou vendo o vídeo pela terceira vez, anotando cada detalhe para poder pesquisar mais afundo. Eu sinceramente estou maravilhado com esse conteúdo raro! Fiquei também impressionado sobre Reactor Pattern já possui tanto tempo de amadurecimento. Certeza que depois desses vídeos serei um programador melhor, obrigado por despertar a curiosidade com um foco plausivel, abrir meus olhos e enxergar um mundo que não é demonstrado devidamente em faculdades quanto menos em mercado.
Fábio Akita, parabéns por compartilhar seu conhecimento e se dedicar tanto pelo canal e conteúdo!
Essa comparação entre Chef+Garçon com o epoll foi a mais pedagógica que já vi!
Achei justa a fala sobre o NGINX, mas fiquei com vontade de provocar sobre o Varnish, que também tem seu lugar ao sol quando se trata de entrega de conteúdos estáticos.
Um curso de sistemas operacionais em 42 minutos, muito bom parabéns mesmo. Ministro aula de sistemas operacionais e não chego a detalhes que você comentou, muito por que as vezes os estudantes não veem a importância disso para ser um bom profissional. Parabéns por sua série e gostaria que não parasse de trazer videos muito importantes como esse.
Fico muito contente quando um real profissional do ensino manda feedback. Obrigadão! 😊
Adicionando um pouco ao tópico: se você tem paralelismo, é imposto que você tem concorrência, mas nem sempre quando você tem concorrência você tem paralelismo, como o Fabio Akita falou sobre o time slicing. Assincronia também impõe concorrência.
Assincronia é basicamente uma situação onde uma instrução possui tasks que podem iniciar dela, sem precisar ficarem bloqueadas por outras(você pode forçar um bloqueio, com o conceito de await). Você pode obter assincronia tanto na forma single thread(com event/message loops, por exemplo) quanto na forma de multi threading. De uma forma geral, existem 2 tipos de situações bloqueantes: relacionados a I/O, e CPU. Problemas de I/O sempre foram pertinentes, como o Fabio Akita falou em 30:54, de nada adianta ter um processador com concorrência se o barramento de I/O vira um gargalo.
Por ultimamente a maioria dos bloqueios no mundo de desenvolvimento web/sass serem ocasionados por I/O, o javascript+web api/node.js trouxeram mais a tona o conceito de assincronia, através do I/O assíncrono, usando event loop. Agora assíncronia não é estritamente relacionado única e exclusivamente a I/O. Existem tasks que podem ser bastante intensivos pra CPU: pensem num processamento da ordenação de uma lista gigantesca de números. Um exemplo de algoritmo para resolver isso é o merge sort, que aplica o conceito de "dividir e conquistar" usando multi threading e paralelismo quando disponível. Nesse esquema uma programação I/O assíncrona single threaded de nada adianta para ajudar no processamento, os callbacks com os cálculos serão executados de forma síncrona na call stack por ser justamente single thread. Esse tipo de bloqueio mais limitado a CPU é mais presente em machine learning, data science, inteligência artificial e etc.
Portanto, cada macaco no seu galho.
O java nativamente por exemplo pode fazer assincronia somente através da utilização de threads, pois a jvm não possui por exemplo um event loop(existem libs como vertx.io e spring webflux que adicionam essa possibilidade). O node.js faz assincronia de I/O em single thread utilizando o event loop + API do C++ + fila de callback, pra trabalhos mais CPU bound o node está em fase experimental desde a versão 10.5 no uso de multi threading. O C# além de threads também pode através do async/await(compilador + state machine).
Isso foi uma aula de ciências da Computação
Muito obrigado professor
Melhor conteúdo q já encontrei falando sobre multi-processo e multi-thread.
Sempre ensinei as pessoas das minhas equipes nesse tópico quando se aprofundavam em C, mas realmente me faltava essa noção das diferenças de custo e problemas entre os sistemas operacionais.
Uma coisa que é muito importante ressaltar é que existia um ponto negativo no uso de threads no que tange o uso de memória. Em um sistema compilado em 32 bits, cada processo só podia alocar no máximo 4 GB de memória. Se vc utilizasse multi-thread, o limite de 4 GB valia para todas as threads.
Dando fork, cada processo tinha seu próprio espaço de memória e podia alocar até 4 GB, o que viabilizava trabalhar com um volume maior de dados em memória em cada processo (e podia fazer com que ele finalizasse antes de atingir o limite, caso houvesse um memory leak).
Fábio já pensou em disponibilizar seus vídeos em formato podcast? Por exemplo no Spotify.
Digo isso por que seria muito bom poder ouvir o conteúdo desse vídeo (que é super longo) no metrô por exemplo. Esse video foi muito útil pra mim pois estou estudando sistemas operacionais pra poder entender paralelismo descentemente. Ver todo conteúdo resumido de forma simples me ajudou a entender e montar uma road lógica do que estudar pra masterizar paralelismo. Muito bom!
Tamer, uma solução para você seria baixar o RUclips Go, fazer o download desse video lá e escutar no metro sem consumir dados. :o)
Sonho realizado, busca Akitando no spotify
Solicitação atendida com sucesso hahahaha
@ Sério? Aí sim
@@miguellopes9177 sim, ele posta o áudio dos vídeos no spotify
Lembrando aqui das minhas aulas de Computação Paralela. E meu TCC será nesse tema, é muito interessante
akita SEM PALAVRAS estes teus videos, cara eu leio pra caralho e NÃO SABIA deste BO das threads no linux até 2006, lembro que voltei a usar linux ali por 2008 , alias TENTEI e incrivel saber que hoje ele é MUITO MELHOR e aqui vemos um porque e ai nestes teus videos estou vendo algumas explicações, surreal, foda mesmo, obrigado.
Como meu pai sempre falou, a gente está sempre aprendendo algo, incrivel mesmo.
Incrivel como quanto mais estudamos, mais vemos que pouco sabemos kkkkk, é foda ... vamos que vamos kkkkkk
Há e quando digo que é muito melhor não falo de ser melhor que windows ou macos , e sim que ele melhorou em relação a si mesmo, incrivel.
Cara, tu me ajudou a entender um problema que ninguém conseguia me explicar até hoje de maneira simples:
Por que o NodeJS consegue atender milhões de conexões possuindo apenas uma thread e o Java não, sendo multi thread.
O multi thread fazia todo o sentido pois em processadores multi core/ multi thread, todos os recursos de hardware seriam utilizados e as threads seriam processadas em paralelo. Mas utilizando threads bloqueantes, há gastos enormes com a troca de contexto (Tanto de processamento quanto de memória) e isso limita o número de conexões que uma aplicação Java baseada em Servelets pode atender. O Node pode atender muito mais pois esses recursos não ficam bloqueados, eles ficam pendentes de eventos do S.O.
Então isso significa que no Java há paralelismo real e mais rápido em processar um certo número de conexões e que o Node mais lento (Pois não há paralelismo real, já que o Event Loop é single thread) mas consegue atender mais conexões concorrentes. Cero?
Em resumo, não há nada que o node.js faça que Java, ou C, out C++, out Python também não consiga fazer. Por isso muitos componentes de servidor importantes são feitos em Java ou C (como um NGINX ou Cassandra). A diferença mais é que Node é mais "facinho" de começar. Só isso. Mas ele não chega até onde outras linguagens mais decentes chegam pelas várias limitações que ele tem (falta de thread nativa sendo só uma delas)
FOGOS!!! NA VIDA REAL ACHEI UM ÍDOLO!!! PARABÉNS!!!
Caramba Fábio, sou estudante de ciências da computação e já acompanho a um bom tempos seus vídeos. Por algum motivo acabei vendo este somente hoje e tenho que tirar o chapéu 10x pela didática e objetividade que você tratou o tema. Da pra ver que tem um carinho imenso na elaboração do conteúdo. Quem me dera ter visto esse vídeo quando estava estudando SO1 xD.
Esse assunto é cabeludo mesmo, mas depois de ver o vídeo 2x e anotar tudo, até um noob como eu consegui entender :D Vlw Akita!
Meu professor de sistemas operacionais da faculdade em 2013 certa vez falou:
"Décadas atrás, os recursos de uma máquina era disputado a tapa pelos processos"
Ainda é kkkk especialmente se rodar um tanto de aba do Chrome kkkk
@@Akitando não para o Mac Pro [ o Max foi 6 mil abas do Chrome ] .... se bem que travou também né hehe
@@renanborges9167 6 mil abas na guerra dos chrome de 2019
Relembrando muita coisa com seus vídeos.
LLVM, scheduler, etc...
Tinha coisas da história que nem lembrava mais...
Assisti três vídeos que eu estava atrasado, agora estou em dia no canal.
Parabéns pelas aulas!
Terceira vez que assisto este video e sempre tem algo que não havia entendi antes e agora consigo pegar melhor.
No momento agora estou nos EUA sem PC notebook só o Note 8 da Samsung Galaxy note agora só assistir ou interagir simples mas em junho estarei com certeza procurando esse gênio humilde porém nunca bobo.
Akita, ja assisti 2 vezes, nesta segunda tomando nota, criando infograficos, fluxos e etc e provavelmente tera uma 3, talvez agora estou conseguindo criar a imagem na cabeça de como isso funciona, nada na pratica ainda mas ja ajuda muitoo!!!
Não sei exatamente sua motivação de criar este conteudo, mas fica aqui sinceramente o meu MUITO OBRIGADO!!!
Muita gente se achando burro por ter que assistir mais de uma vez pra aprender. Porém, isso é exatamente o que você tem que fazer. Pra entender, talvez você precise assistir uma ou duas vezes, mas pra aprender você vai ter que assistir dezenas de vezes. E convenhamos, você não tem nada melhor pra fazer...XD
Um maestro tecnológico. Tô curtindo muito o canal amigo. Gratidão 🙏🏼 Maratonando tudo Aki.
Lembrei das minhas aulas da faculdade.... Sempre digo isso para os mais jovens, foquem nos conceitos...
Muito massa, me lembrou do capítulo do livro de Delphi do Cantu que falava de programação em thread... Muito interessante e o teste era fazer contadores em paralelo e você via a diferença de velocidade em função do escopo de variáveis e as diferenças das várias estratégias de programação paralela... Sugestão: faça um vídeo detalhando o Minix do Tanembaum... Abraços!
Muito, mas muito bom. Tô maratonando seus vídeos aqui. Achei que já sabia uns 2%, depois do terceiro vídeo teu vi que devo saber uns 0,02% kkkk. Muito bom aprender dessa forma vindo de gente que realmente sabe o que está falando e em português ainda. Valeu. Abraço.
Eu fiz um trabalho da faculdade esses dias que era sobre sistemas operacionais , mais especificamente sobre threads , programação multithreads , estados de threads e por ai vai ... e essa sua playlist de entendendo back-end ajudou muito cara . Vlw kkk
Uma coisa é vc pesquisar o assunto fragmentadamente. Outra é vc passar por todos os assuntos e ter uma ideia geral e relativizada! Muito bom!
Simplesmente incrível 🚀
Parabéns! Excelente conteúdo!
melhor conteúdo br.
Mano do ce'u. Eu assistindo em 2x tive que diminuir para 1.5x para entender tudo. Parabens Fabio. Muito bom o conteudo.
Muito legal sua didática e otimas analogias. Continue sempre fazendo conteúdo legais assim.
No minuto 30:11 você disse: "um servidor do WhatsApp hoje serve mais de 2 milhões de conexões simultaneas", mas os protocolos tcp ou udp so podem endereçar 2^16=65535 que seria o maximo de conexões que poderia ficar estabelecidas ao mesmo tempo.
Vou assistindo "picado".... Fantástico vídeo Akita, obrigado 🙏
Muito obrigado pelo conteúdo.
Simplesmente o melhor!
Akita é monstro demais!! Conteúdo extremamente complexo sendo mostrado com analogias simples! Show!
Eu estava estudando a infra estrutura do Telegram e me deparei com esse event looper e uso de epoll do linux para conseguir responder a quantidade de requisicoes que eles recebiam.
Isso me ajudou a criar meu aplicativo utilizando esta implementacao no codigo nativo JNI para controle de notificacoes push e ping pong de servidor cliente com sincronizacoes off-line first.. foi a unica forma que consegui resolver
Parabens pelo video, conteudo muuito complexo visto de uma forma clara e sem paixão voce é demais
Melhor que minhas aulas de OS na faculdade muitooo bom.
Caraca...uma palestra a Jato...cada vídeo daria uma palestra de 2 horas ou mais com certeza.... parabéns ao Akita pela eficiência em agrupar tanta informação de forma sequencial, seguindo a linha de raciocínio...TOP
Que video sensacional. Há alguns meses virei entusiasta em usar threads em aplicações Java. Acho uma tecnologia incrível e facilita mto o serviço em cargas pesadas de trabalho. Ótima explicação!
Essa série é uma faculdade , fiz CC e algumas coisas estou revendo mas outras coisas não vi nem na faculdade. Parabéns Akita.
Curioso ver tudo isso na faculdade mas, pela falta de experiência naquela época, não fazer tanto sentido como agora. Sempre bom revisitar as bases.
Muito obrigado pelo conteúdo!! 👏🏼👏🏼👏🏼👏🏼
As melhores explicações da área de programação no RUclips. Por favor não pare!
Mais um espetáculo de explicação. Akita o professor mais completo do universo, nunca vi ninguem igual.
Muito legal! Parabéns pelo trabalho, Akita!
Privilégio poder consumir esse conteúdo de altíssima qualidade. Muito obrigado mesmo!
Adoro esse episódio!
Tera algum video sobre codificacao de caracteres? Acho um tema bem importante tambem. Otimo trabalho.
Tem em inglês. Sobre unicode.
Ansioso por esse video.
Só agora consegui entender esse video razoavelmente. (na faculdade não consegui).
34:47 "A terceira opção, como já imaginaram (...)" Ah, claro! rsrs
Muito, muito bom! Obrigado por compartilhar.
As ferramentas CAD com que eu trabalho tem vários problemas de performance devido a concorrências e paralelismos.. Essa aula me ajudou a entender um pouco mais as limitações que elas possuem.
Cara, a sua didática é coisa de outro nível
Eu acho que esse cara trabalha no vale do silício kkk, você é foda Akita
Parabéns 👏🏻👏🏻👏🏻👏🏻
Fascinante ! Espetacular ! Uma aula Magistral ! Totalmente Esclarecedor !
AKITA sua didática e muito boa em explicar, e qualidade em gravação
Vc é o cara
Esse cara explica nos minimos detalhes show muito bom mestre tive uma materia sobre SO na faculdade me recordei dela
Melhor explicação sobre deadlock que já vi
Conteúdo de alta qualidade. Aprendo muito com esse canal.
Quando comprei meu primeiro Mac em 1999, um PowerPC G3 233MHz, ele fazia, com o MacOS 9 algo que parecia bruxaria à época: Ele conseguia gravar audio ao mesmo tempo que executava vários arquivos de audio ao mesmo tempo.
apredendo um pouco mais aqui, curtindo bastante essa série, valeu.
Excelente canal.
Muito bom assistir esses vídeos do Akita. Recordei me das aulas de sistemas operacionais, onde vi conceitos de região crítica semáforos. Processos e Threads. Problemas do filósofos comendo macarrão. Kkk
Bem didático o exemplo da mesa! 👏👏👏
Lembrei do livro Sistemas Operacionais Modernos.
Vlw Akita!
Sempre vídeos de grande qualidade!.
Incrível é a definição mais acertava para essa sua séries vídeos 😁💪💪👊
É a segunda vez que venho nesse vídeo, a diferença é que agora eu tô com bagagem pra entender
Parabéns..muito bem explicado
Primeira vez que fiquei feliz do meu browser dar pau, já que aconteceu exatamente na parte da explicação sobre os crashes em navegadores.
Rapaz, fiquei até com dor de cabeça com tanta informação, hahahaha
Uma dica a quem passar por aqui e é iniciante(como eu): não achem que isso é tutorial, pois não é, e ele também não caga regra, eu instalei direto o ubuntu como sistema principal(nada de dual boot, tirei o windows da minha vida), to sofrendo com algumas coisas(quase espanquei minha impressora hoje, mas de tanto ser ameaçada deu certo, hahahaha), e dispensei o arch linux que ele sugeriu por exemplo!
Quem quer seguir tudo que ele passa à risca vai no vídeo: não terceirize suas decisões, pois vocês entenderam errado, hahahahahahaha(indico esse vídeo pra todo mundo)
Abraços Akita, excelente conteúdo!
Obrigado! Que bom que vocês entenderam o objetivo dos vídeos e é isso mesmo, não é passo a passo escrito em pedra.
Que aula 👏🏻👏🏻👏🏻
obs: Quando se fala de troca de contexto, basicamente está se falando em salvar o contexto dos registradores para uma thread. Basicamente é salvar os valores dos registradores da cpu na estrutura da thread. Isso é o context switch feito por software, mas existe o salvamento feito em tss e esse é o context switch feito por hardware. Por fim, é importante lembrar que quando o sistema operacional possui estrutura de thread e estrutura de processo, então o processador vai lidar com threads. Mas sistemas antigos só tinham estrutura de processo e o contexto dos registradores eram salvos na estrutura de processo mesmo.
esse cara é bom
Ah! Fiz a pouco um exercício chamado "o jantar dos filosofos"... Teria sido tao bom ter assistido esse vídeo antes😅
Parabens pelo video,otimo conteudo,muito bem explicado.
muito bom, parabens, voce conseguiu resumiu umas 300 paginas do tanembaum em apenas um video
Caraaaaaaaa, a cada vídeo eu aprendo mais valeu Akita !
Fique c Deus
Boa sorte Ana
Lembro até hj como simular as threads preemptivas no Windows 95/98 usando processador single-cores, era só tocar uma música no media player e abrir o browser em seguida, q era notavel como o scheduler de processos trabalhava, pois para dar conta dos dois processos intercalando de tempos em tempos em cada um dos processos, o som do media player sofria varios cortes a cada segundo enquanto estava carregando o browser.
Que aula meus amigos. Akita é fera demais!
Fantástico, obrigado pela dedicação e pela qualidade dos seus vídeos! AkitaBomDeMais!
Com tantos exemplos da vida real, utilizados para exemplificar a computação, fica ainda mais claro que estamos imitando a vida real ao escrever sistemas :)
Muito boa a explicação.
E por isso estou tentando entender como utilizar os thread. ....estou pensando utilizar o Open Suse ....e configurar montar a minha naquina
Rapaz, anos de faculdade em 40 minutos. Show de bola!
Que série fantástica, valeu Akita!
seria interessante se no exemplo o tamanho da mesa representasse a memoria, mas enfim. o video está incrivel!
Se poder fazer alguns cursos de programação, certo que já tem em alguns canais
Mas queria ver você ensinando, como Node.Js
Python
C#
ou outras é ferramentas essenciais que todo programador tem que saber hoje para iniciar
Muito boa a explicação, deixa muitos Doutor em TI, no chinelo...
Agora sim a semana começou hahaha