J'ai posé une question connexe 'Difference between process group id and job id in Unix', mais j'ai un doute qui n'a pas été répondu. Dans cette réponse, il a été écrit que l'ID du travail est construit dans les données liées à shell (le noyau n'a rien à voir avec cela), donc le premier plan/arrière-plan est la compréhension du shell, mais quand il fait ps x
ou "R"
respectivement comme processus de premier plan et d'arrière-plan, mais ps
est exécuté par le noyau, donc comment le noyau sait-il que le travail est en arrière plan/premier plan.ID de travail sous UNIX doute
Répondre
Les ID de tâche sont définitivement des fonctionnalités de coque.
Cependant, le système d'exploitation a la notion d'ID de groupe de processus terminal actuel, qui est également utilisé par le shell pour faciliter le contrôle des travaux. Les processus qui ont le même ID de groupe de processus que le processus terminal actuel reçoivent un signal de clavier tel que SIGINT et sont capables de faire des E/S sur le terminal. Ces processus sont des processus de premier plan. Si l'ID du groupe de processus est différent, le processus est un processus d'arrière-plan. La commande ps affiche +
lorsque le processus est un processus de premier plan dans cette notion. Il n'a toujours pas besoin de savoir quoi que ce soit sur le contrôle de travail tel qu'il est implémenté par le shell.
Comment shell informe le noyau du processus terminal actuel? Son utilisation exec pour exécuter la fonction. Quelle autre routine est impliquée pour faire cela? – avd
Je ne dirais pas que 'noyau n'a rien à voir' puisque le shell utilise des routines dans le noyau pour atteindre ses objectifs.
La coque décide si un processus est premier plan ou arrière-plan, mais le noyau doit être conscient de trop, et peut signaler l'état des processus lorsque la coque demande.
Quelles sont les routines du noyau utilisées par shell? – avd
Je pense que nous pourrions dire que le shell utilise * any * routine du noyau utile. Le noyau peut être considéré comme une bibliothèque de routines pour accéder aux disques, à l'affichage, aux périphériques d'E/S, etc. Chaque fois que le shell (ou tout programme exécutable) doit accéder au matériel, il utilise une routine noyau. Le nouveau matériel peut nécessiter des pilotes spéciaux, mais les nouvelles versions du noyau continuent d'ajouter * du support pour le matériel sous la forme de nouvelles routines. – pavium
J'ai besoin d'une routine exacte, je suis en train de mettre en œuvre mon propre shell, s'il vous plaît dites à son urgence – avd
- 1. Différence entre l'ID du groupe de processus et l'ID du travail sous UNIX
- 2. Multithreading - Synchronisation sous Unix
- 3. processus système sous Unix
- 4. Code optimisé sous Unix?
- 5. doute sur une queue de code optimisé sous « gdb »
- 6. Sous-système Unix pour Windows
- 7. Taille du processus sous UNIX
- 8. Scripts de contrôle d'application sous Unix
- 9. Doute dans l'établissement de liaison à trois voies dans la fonction d'écoute TCP et Unix
- 10. Génération d'un ID de matériel sous Windows
- 11. Github doute - repo de synchronisation
- 12. Outils Unix sous GUI pour Windows
- 13. Supprimer uniquement mes fichiers sous Unix
- 14. Comment créer un progiciel sous Unix/Linux
- 15. Comment lancer un fichier .jar sous UNIX?
- 16. Telerik RadEditor problème de travail sous VS2008
- 17. nouveau à Hibernate - doute
- 18. Oracle Schema Doute?
- 19. LINQ où Clause doute
- 20. El doute d'expression
- 21. Concept de "compteurs de performance" sous Linux/Unix
- 22. Sous-id, le suivi-id ou id site dans http://cj.com buyUrl
- 23. Doute dans le programme JavaMail
- 24. C# doute GetType, Managed CodeGen
- 25. Javascript Prototype Héritage Doute II
- 26. doute dans les tests fonctionnels
- 27. Projet Euler # 5 php doute!
- 28. doute dans le concept de fil
- 29. En boucle et en combinant deux fichiers sous UNIX
- 30. Exécution d'un script sur plusieurs fichiers sous Unix
Normalement, 'ps' est un processus tout comme le shell est un processus. Il existe différents endroits où 'ps' peut obtenir l'information - souvent le système de fichiers'/proc' est utilisé, ou il peut utiliser '/ dev/kmem' directement. –