Donats un nombre "n" i un nombre n, ordena els números mitjançant l'Ordenació de combinació simultània. (Suggeriment: proveu d'utilitzar trucades al sistema shmget, shmat).Part 1: l'algorisme (COM?) Feu de manera recursiva dos processos secundaris, un per a la meitat esquerra i un per a la meitat dreta. Si el nombre d'elements de la matriu d'un procés és inferior a 5, feu una ordenació per inserció. Aleshores, el pare dels dos fills fusiona el resultat i torna al pare i així successivament. Però, com ho feu simultània?Part 2: la lògica (PER QUÈ?) La part important de la solució d'aquest problema no és algorítmica, sinó explicar conceptes de sistema operatiu i nucli. Per aconseguir una ordenació simultània, necessitem una manera de fer que dos processos funcionin a la mateixa matriu alhora. Per facilitar les coses, Linux ofereix moltes trucades al sistema mitjançant punts finals d'API simples. Dos d'ells són, shmget() (per a l'assignació de memòria compartida) i shmat() (per a operacions de memòria compartida). Creem un espai de memòria compartida entre el procés fill que bifurquem. Cada segment es divideix en fill esquerre i dret que s'ordena, la part interessant és que estan treballant simultàniament! El shmget() demana al nucli que assigni una pàgina compartida per als dos processos. Per què el tradicional fork() no funciona? La resposta rau en què fa realment fork(). A la documentació, "fork() crea un procés nou duplicant el procés de trucada". El procés fill i el procés pare s'executen en espais de memòria separats. En el moment de fork() ambdós espais de memòria tenen el mateix contingut. Les escriptures de memòria, els canvis de descriptors de fitxers (fd), etc. realitzats per un dels processos no afecten l'altre. Per tant, necessitem un segment de memòria compartida.