Dans le cadre de ce cours, on aborde les systèmes d'exploitation multitâches préemptif. On examine surtout les processus, la gestion de la mémoire, la gestion des entrées/sorties, les systèmes de fichiers et la communication/synchronisation entre les processus. Le langage C est employé en laboratoire afin de mettre en application les connaissances théoriques acquises.
1. Introduction, types de systèmes d'exploitation, concepts fondamentaux, contenu du cours
2. Composants d'un système d'exploitation, classes matérielles, systèmes de fichiers
3. Processus, threads, appels système, commutation de contexte (noyau et utilisateur)
4. Primitives de synchronisation, modèle producteur/consommateur
5. Ordonnancement
6. Sécurité, protection
7. Semaine d'Examens
8. Mémoire virtuelle I
9. Mémoire virtuelle II
10. Gestion efficace du cache, cohérence et constance
11. Verrous haute performance, ordonnancement équitable, interblocages, blocages persistants
12. Gestion dynamique de la mémoire
13. Edition des Liens, Bibliothèques Dynamiques, Déploiement
14. Machines virtuelles, conteneurs, jails, sandboxing
À l'issue de ce cours, les étudiants gagneront:
1. Capacité à expliquer les charactéristiques d'un système d'exploitation
2. Capacité à utiliser, comprendre et concevoir des logiciels en C, que ce soit dans l’espace noyau ou dans l’espace utilisateur.
3. Capacité à expliquer et à utiliser la programmation multiprocessus ;
4. Capacité à analyser, expliquer et mettre en œuvre les exigences de synchronisation interprocessus ;
5. Capacité à gérer efficacement les ressources matérielles telles que la mémoire, la bande passante et le processeur.
Exposé, discussion, démonstration, étude de cas, résolution de problème, apprentissage coopératif, projet, prise de tête
Le Livre: Operating System Concepts, 10th Ed. Silberschatz, Galvin, Gagne
Les Notes: https://burakarslan.com/inf333
Le Projet: https://pintos-os.org/
| Semaine | Intitulés des Sujets |
|---|---|
| 1 | Introduction, types de systèmes d'exploitation, concepts fondamentaux, contenu du cours |
| 2 | Composants d'un système d'exploitation, classes matérielles, systèmes de fichiers |
| 3 | Processus, threads, appels système, commutation de contexte (noyau et utilisateur) |
| 4 | Primitives de synchronisation, modèle producteur/consommateur |
| 5 | Ordonnancement |
| 6 | Sécurité, protection |
| 7 | Semaine d'Examens |
| 8 | Mémoire virtuelle I |
| 9 | Mémoire virtuelle II |
| 10 | Gestion efficace du cache, cohérence et constance |
| 11 | Verrous haute performance, ordonnancement équitable, interblocages, blocages persistants |
| 12 | Gestion dynamique de la mémoire |
| 13 | Edition des Liens, Bibliothèques Dynamiques, Déploiement |
| 14 | Machines virtuelles, conteneurs, jails, sandboxing |
| Semaine | Intitulés des Sujets |
|---|---|
| 1 | Fondamentaux de Linux I |
| 2 | Fondamentaux de Linux II |
| 3 | Introduction à Pintos |
| 4 | Processus, Thread |
| 5 | Changement de contexte |
| 6 | Mutex |
| 7 | La Semaine des Partiels |
| 8 | Pintos II |
| 9 | Producteur / Consommateur |
| 10 | Sémaphore |
| 11 | Sémaphore II |
| 12 | Ordonnancement des verrous mutex |
| 13 | Mutex partagé |
| 14 | Interblocage |
| Activités | Numéro | Contribution |
|---|---|---|
| Contribution du contrôle continu à la note finale | 4 | 60 |
| Contribution de l'examen final à la note finale | 1 | 40 |
| Total | 5 | 100 |
| Activités | Numéro | Contribution |
|---|---|---|
| Devoir | 0 | 0 |
| Présentation | 0 | 0 |
| Examen partiel (temps de préparation inclu) | 1 | 15 |
| Projet | 2 | 30 |
| Travail de laboratoire | 1 | 15 |
| Autres travaux pratiques | 0 | 0 |
| Quiz | 0 | 0 |
| Devoir/projet de session | 0 | 0 |
| Portefeuille | 0 | 0 |
| Rapport | 0 | 0 |
| Journal d'apprentissage | 0 | 0 |
| Mémoire/projet de fin d'études | 0 | 0 |
| Séminaire | 0 | 0 |
| Autre | 0 | 0 |
| Make-up | 0 | 0 |
| Total | 4 | 60 |
| No | Objectifs Pédagogiques du Programme | Contribiton | ||||
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | ||
| 1 | Matematik, fizik ve mühendislik bilimlerine özgü konularda yeterli bilgi birikimi; bu alanlardaki kuramsal ve uygulamalı bilgileri, mühendislik problemlerinin modellenmesi ve çözümünde kullanabilme becerisi. | X | ||||
| 2 | Karmaşık bilgisayar mühendisliği problemlerini saptama, tanımlama, formüle etme ve çözme becerisi; bu amaçla uygun analiz ve modelleme yöntemlerini seçme ve uygulama becerisi. | X | ||||
| 3 | Yazılımsal veya donanımsal karmaşık bir sistemi, süreci veya donanımı gerçekçi kısıtlar ve koşullar altında, belirli gereksinimleri karşılayacak şekilde tasarlama becerisi; bu amaçla modern tasarım yöntemlerini uygulama becerisi. | X | ||||
| 4 | Mühendislik uygulamalarında karşılaşılan karmaşık problemlerin analizi ve çözümü için gerekli olan modern teknik ve araçları geliştirme, seçme ve kullanma becerisi; bilişim teknolojilerini etkin bir şekilde kullanma becerisi. | X | ||||
| 5 | Analitik düşünce ile bir sistemi, sistem bileşenini ya da süreci analiz etme, modelleme, deney tasarlama ve yapma, veri toplama, çözüm algoritmaları üretebilme, uygulamaya alma ve geliştirme becerileri. | X | ||||
| 6 | Disiplin içi ve çok disiplinli takımlarda etkin biçimde çalışabilme becerisi; bireysel çalışma becerisi. | X | ||||
| 7 | Türkçe sözlü ve yazılı etkin iletişim kurma becerisi; en az iki yabancı dil bilgisi; etkin rapor yazma ve yazılı raporları anlama, yazılım ve donanım tasarımını, gerekirse teknik resim metotları kullanarak raporlayabilme, etkin sunum yapabilme becerisi. | X | ||||
| 8 | Bilgiye erişebilme ve bu amaçla kaynak araştırması yapabilme, veri tabanları ve diğer bilgi kaynaklarını kullanabilme becerisi | X | ||||
| 9 | Yaşam boyu öğrenmenin gerekliliği bilinci; kendini sürekli yenileme becerisi. | X | ||||
| 10 | Mesleki etik ilkelerine uygun davranma, mesleki sorumluluk bilinci; mühendislik uygulamalarında kullanılan standartlar hakkında bilgi. | X | ||||
| 11 | Proje yönetimi, risk yönetimi ve değişiklik yönetimi gibi, iş hayatındaki uygulamalar hakkında bilgi; girişimcilik, yenilikçilik hakkında farkındalık; sürdürülebilir kalkınma hakkında bilgi. | X | ||||
| Activités | Nombre | Durée | Charge totale de Travail |
|---|---|---|---|
| Durée du cours | 13 | 2 | 26 |
| Préparation pour le cours | 13 | 2 | 26 |
| Devoir | 0 | 0 | 0 |
| Présentation | 0 | 0 | 0 |
| Examen partiel (temps de préparation inclu) | 0 | 0 | 0 |
| Projet | 2 | 20 | 40 |
| Laboratoire | 1 | 26 | 26 |
| Autres travaux pratiques | 0 | 0 | 0 |
| Examen final (temps de préparation inclu) | 1 | 10 | 10 |
| Quiz | 0 | 0 | 0 |
| Devoir/projet de session | 0 | 0 | 0 |
| Portefeuille | 0 | 0 | 0 |
| Rapport | 0 | 0 | 0 |
| Journal d'apprentissage | 0 | 0 | 0 |
| Mémoire/projet de fin d'études | 0 | 0 | 0 |
| Séminaire | 0 | 0 | 0 |
| Autre | 0 | 0 | 0 |
| baclé | 0 | 0 | 0 |
| Yil | 0 | 0 | 0 |
| Yil | 0 | 0 | 0 |
| Yil | 0 | 0 | 0 |
| Charge totale de Travail | 128 | ||
| Charge totale de Travail / 25 | 5.12 | ||
| Crédits ECTS | 5 | ||