logo

Multithreading en el sistema operatiu

A fil és un camí que es segueix durant l'execució d'un programa. La majoria dels programes escrits avui dia s'executen com un sol fil. Diguem, per exemple, un programa no és capaç de llegir les pulsacions de tecles mentre fa dibuixos. El programa no pot executar aquestes tasques alhora. Aquest problema es pot resoldre mitjançant la multitasca de manera que es puguin executar dues o més tasques simultàniament. La multitasca és de dos tipus: basada en processador i basada en fils. La multitasca basada en el processador la gestiona totalment el sistema operatiu, però la multitasca mitjançant multithreading pot ser controlada pel programador fins a cert punt. El concepte de multifils necessita una comprensió adequada d'aquests dos termes: un procés i un fil . Un procés és un programa que s'està executant. Un procés es pot dividir en unitats independents conegudes com a fils. Un fil és com un petit procés lleuger dins d'un procés. O podem dir que una col·lecció de fils és el que es coneix com a procés. Aplicacions - El fil s'utilitza àmpliament en gairebé tots els camps. El més àmpliament es veu a Internet avui dia on estem utilitzant el processament de transaccions de tot tipus, com ara recàrregues, transferències en línia, banca, etc. El threading és un segment que divideix el codi en petites parts que són de pes molt lleuger i amb menys càrrega per a la CPU. memòria perquè es pugui resoldre fàcilment i assolir l'objectiu en el camp desitjat. El concepte de roscat està dissenyat a causa del problema dels canvis ràpids i regulars en la tecnologia i menys el treball en diferents àrees a causa de la menor aplicació. Aleshores, com es diu, la necessitat és la generació de creació o innovació, per tant, seguint aquest enfocament, la ment humana desenvolupa el concepte de fil per millorar la capacitat de programació.

Cicle de vida d'un fil

Hi ha diverses etapes en el cicle de vida d'un fil. A continuació es mostren les etapes per les quals passa un fil durant tota la seva vida.

  • Nou: El cicle de vida d'un fil nascut (fil nou) comença en aquest estat. Es manté en aquest estat fins que s'inicia un programa.
  • Es pot executar : un fil es pot executar després d'iniciar-se. Es considera que està executant la tasca que se li ha encomanat.
  • Esperant : Mentre s'espera que un altre fil realitzi una tasca, el fil que s'executa actualment passa a l'estat d'espera i després torna a fer la transició després de rebre un senyal de l'altre fil.
  • Espera cronometrada: Un fil que es pot executar entra en aquest estat durant un interval de temps específic i després torna enrere quan caduca l'interval de temps o es produeix l'esdeveniment que el fil esperava.
  • Terminat (mort) : Un fil entra en aquest estat després de completar la seva tasca.

Tipus d'execució en SO

Hi ha dos tipus d'execució:



  1. Execució simultània: Això passa quan un processador té èxit en canviar recursos entre fils en un procés multifils en un sol processador.
  2. Execució paral·lela: Això passa quan cada fil del procés s'executa en un processador independent al mateix temps i en el mateix procés multifil.

Inconvenients del multithreading

El multithreading és complex i moltes vegades difícil de manejar. Té alguns inconvenients. Aquests són:

  • Si no feu servir els mecanismes de bloqueig correctament, mentre investigueu els problemes d'accés a les dades, hi ha la possibilitat que sorgeixin problemes com la inconsistència de les dades i el bloqueig mort.
  • Si molts fils intenten accedir a les mateixes dades, hi ha la possibilitat que es produeixi una situació de fam de fils. Els problemes de contenció de recursos són un altre problema que pot preocupar l'usuari.
  • Es poden produir problemes de visualització si els fils no tenen coordinació quan es mostren les dades.

Beneficis del multithreading:

  • El multithreading pot millorar el rendiment i l'eficiència d'un programa utilitzant els recursos de CPU disponibles de manera més eficaç. Executant diversos fils simultàniament, pot aprofitar el paral·lelisme i reduir el temps d'execució global.
  • El multithreading pot millorar la capacitat de resposta en aplicacions que impliquen la interacció de l'usuari. En separar les tasques que requereixen temps del fil principal, la interfície d'usuari pot romandre sensible i no congelar-se ni deixar de respondre.
  • El multithreading pot permetre una millor utilització dels recursos. Per exemple, en una aplicació de servidor, diversos fils poden gestionar les sol·licituds de clients entrants simultàniament, permetent que el servidor serveixi més clients simultàniament.
  • El multithreading pot facilitar una millor organització i modularitat del codi dividint tasques complexes en unitats d'execució més petites i manejables. Cada fil pot gestionar una part específica de la tasca, fent que el codi sigui més fàcil d'entendre i mantenir.