2017-05-26 9 views
0

Iam est-il troublé si les appels système et les jeux d'instructions sont synonymes? Est-ce que les instructions comme MOV, LOAD, CALL, IN, OUT, ADD, SUB etc. tombent dans la catégorie des appels système? Les instructions d'appel système comme open(), close(), read(), write(). Si non, quelle est la relation entre eux. Quelqu'un peut-il s'il vous plaît expliquer et effacer la confusion.Quelle est la différence entre les appels système et le jeu d'instructions

Répondre

0

Plusieurs livres sont nécessaires pour expliquer la différence. Je recommande notamment Operating Systems : Three Easy Pieces et un livre sur l'architecture de l'ordinateur, ou au moins quelques diapositives sur l'ensemble fictif Y86 instruction.

Un instruction set architecture définit le machine code compris par un processeur et la façon dont chaque instruction machine modifie le (observable) état de l'ordinateur (par exemple, des changements de contenu processor registers -y compris le program counter et la call stack pointer, la mémoire locations dans virtual address space, etc ...

Un system call est effectué par un programme d'application pour demander des services à partir du noyau du système d'exploitation. Du point de vue du programme d'application, il s'agit souvent d'une instruction machine élémentaire (par exemple SYSENTER ou SYSCALL) mais le noyau exécute beaucoup de code (à l'intérieur du noyau) avant de retourner au programme d'application.

En d'autres termes, un système d'exploitation kernel fournit le procédé d'application de l'illusion que le processeur comprend un code machine non privilégié ordinaire augmentée d'une primitive système d'appel (en mesure d'exécuter l'une quelconque des syscalls fournies par le noyau, pour Linux voir syscalls(2) pour une liste exhaustive). Lire aussi sur SYSENTER in Linux et SYSENTER on OsDev. Le point est qu'avec divers CPU modes certaines instructions de machines privilégiées (par exemple celles accédant aux périphériques ou les MMU) ne sont autorisées que pour le noyau. Si le code de votre application les essaie, le processeur déclenchera une exception.

+0

Les appels système sont-ils convertis aux instructions fournies par le jeu d'instructions? Ou puis-je dire que les appels système sont une couche au-dessus du jeu d'instructions –

+0

Vous comparez des pommes avec des oranges. Les appels système sont une abstraction fournie par le noyau –

+0

Y a-t-il une relation entre eux? Je veux dire les appels système doivent utiliser les instructions d'instruction pour être mis en œuvre au niveau de la machine –

0

Les fonctions que nous appelons de l'espace utilisateur dans le noyau sont appelez Appels système.

Une instruction réglé est un groupe de commandes de code machine qui peuvent être reconnues et exécutées par une CPU (C entral P rocessing U nit).