Explore ICT301's 10-credit module covering hard real-time systems, databases, and operating systems interaction. Learn from 7 lectures and practical tutorials. Dive into concurrent Java programming and system design concepts.
Une image / un lien ci-dessous est fourni (tel quel) pour télécharger la présentation
Politique de téléchargement : le contenu du site vous est fourni TEL QUEL pour votre information et votre usage personnel ; il ne peut être vendu, concédé sous licence ni partagé sur d’autres sites sans l’accord de son auteur.Le contenu vous est fourni TEL QUEL, pour votre information et votre usage personnel uniquement.Téléchargez la présentation en cliquant sur ce lien.Lors du téléchargement, si vous ne parvenez pas à télécharger une présentation, l’éditeur a peut-être supprimé le fichier de son serveur.Pendant le téléchargement, si vous ne parvenez pas à obtenir une présentation, le fichier a peut-être été supprimé par l’éditeur.
ICT301 • Block 1 – The Foundations • Nature of concurrent systems • Hardware and operating systems support • Processes, multi-threading Programming language needed
ICT301 • Block 2 – Inter-process Communications • Shared and non shared data • Shared and non shared memory • Problems and issues Not fact-based • Requires understanding
ICT301 • Block 3 – Application Considerations • System viability • Transactions • Distributed databases • Standards and mini case study
ICT301 Why study concurrent systems? The Story of “How to get Rich Quickly Without Studying ICT301”
Concurrent Systems Systems with several processes that: • contribute to overall objective • independent • cooperate among themselves • exchange data • synchronise actions • compete for resources • respond toexternal events • interact with external environment
level 7 elevator 3 bypasses a call at level 4 to go up because elevator 1 will be stopping at that level 3 level 6 4 level 5 elevator 1 answers the call at level 4 to go up because someone will be getting off from it at this level level 4 1 level 3 elevator 4 answers a call to go down level 2 2 elevator 2 discharging passengers at level 1 level 1
level 7 Service zone level 6 The system is dynamic and concurrent 4 level 5 level 4 Service zone 3 Service zone 1 level 3 level 2 Service zone 2 level 1
Concurrent Systems • How would the Java program looks like? class ElevatorController { public static void main(String args[ ]) { use for loop ? } }
Concurrent Systems • How would the Java program looks like? class ElevatorController { public static void main(String args[ ]) { use for loop ? } } • independent • cooperate • exchange data • synchronise actions • compete for resources • respond toexternal events • interact with external environment
Concurrent Systems • Inherently concurrent systems • Concurrent by nature • Potentially concurrent systems • Not concurrent by nature • But can be implemented as concurrent systems
Inherently Concurrent Systems • Typical inherently concurrent systems • Real-time and embedded systems • Databases and transaction processing systems • Operating systems
Inherently Concurrent Systems • Typical inherently concurrent systems • Real-time and embedded systems • Hard real time systems • Soft real time systems • Databases and transaction processing systems • Operating systems Aircraft Flight Controls Real time? Information up to date Hard or soft? Response time critical
Inherently Concurrent Systems • Typical inherently concurrent systems • Real-time and embedded systems • Hard real time systems • Soft real time systems • Databases and transaction processing systems • Operating systems Aircraft Flight Controls Real time? Information up to date Hard or soft? Response time critical • Banking: ATM system • Real time? • Hard or soft? • Balance inquiry • Cash withdrawal
Recall our get-rich-quick story Bank accounts ATM GIRO Inherently Concurrent Systems • Typical inherently concurrent systems • Real-time and embedded systems • Databases and transaction processing systems • Operating systems
Inherently Concurrent Systems • Typical inherently concurrent systems • Real-time and embedded systems • Databases and transaction processing systems • Operating systems
Processor Disk Screen Memory Keyboard Printer Inherently Concurrent Systems • Typical inherently concurrent systems • Real-time and embedded systems • Databases and transaction processing systems • Operating systems • Single user
Processor Disk Screen Screen Screen Processor Disk Keyboard Keyboard Keyboard Disk Memory Printer Plotter Inherently Concurrent Systems • Typical inherently concurrent systems • Real-time and embedded systems • Databases and transaction processing systems • Operating systems • Single user • Multi-users
print server print server database server database server 1 1 2 2 3 3 4 4 workstation workstation workstation workstation Inherently Concurrent Systems • Typical inherently concurrent systems • Real-time and embedded systems • Databases and transaction processing systems • Operating systems • Single user • Multi-users • Networked users
Concurrent Systems • So far, inherently concurrent systems • Next, potentially concurrent systems
Potentially Concurrent Systems • Not concurrent by nature • Advantageous to implement concurrent processing • Usually in situations where • large amount of data • large amount of processing • real-time need • parallel processing possible
Potentially Concurrent Systems • Ways to implement concurrent processing • Replicated code with partitioned data • Partitioned code with duplicated data • Pipelined processing • Tree-structured algorithms
Codes that process data Portion of data Codes that process data Portion of data Program that coordinates the processing . . . . . . Codes that process data Portion of data Potentially Concurrent Systems • Ways to implement concurrent processing • Replicated code with partitioned data • Partitioned code with duplicated data • Pipelined processing • Tree-structured algorithms
Matrix operations 23 47 82 57 71 95 38 52 73 44 96 25 17 68 78 36 Potentially Concurrent Systems • Ways to implement concurrent processing • Replicated code with partitioned data • Partitioned code with duplicated data • Pipelined processing • Tree-structured algorithms
Potentially Concurrent Systems • Ways to implement concurrent processing • Replicated code with partitioned data • Partitioned code with duplicated data • Pipelined processing • Tree-structured algorithms Batch 1 Marked by examiner A
Marked by examiner A Marked by examiner B Marked by examiner A Potentially Concurrent Systems • Ways to implement concurrent processing • Replicated code with partitioned data • Partitioned code with duplicated data • Pipelined processing • Tree-structured algorithms Batch 1 Batch 2
Marked by examiner A Marked by examiner B Reviewed by moderator Marked by examiner A Marked by examiner B Marked by examiner A Potentially Concurrent Systems • Ways to implement concurrent processing • Replicated code with partitioned data • Partitioned code with duplicated data • Pipelined processing • Tree-structured algorithms Batch 1 Batch 2 Batch 3
Marked by examiner A Marked by examiner B Reviewed by moderator Marked by examiner A Marked by examiner B Marked by examiner A Marked by examiner A Marked by examiner B Reviewed by moderator Checked by checker Potentially Concurrent Systems • Ways to implement concurrent processing • Replicated code with partitioned data • Partitioned code with duplicated data • Pipelined processing • Tree-structured algorithms Batch 1 . . . Batch 2 Batch 3 . . . Batch 4 . . .
Typical architecture Processor Disk Screen Memory Keyboard Printer Basic Computer Architecture Recall operating systems • inherently concurrent • closer look at what it has to do
The big speed difference Consider a 2 GHz CPU • Two thousand million cycles per second Consider human typing at 10 characters per second
The big speed difference Consider a 2 GHz CPU • Two thousand million cycles per second Consider human typing at 10 characters per second If CPU works at 1 cycle per second, human would be typing at one character every six years. Ratio is 200,000,000 to 1
The big speed difference Consider a 2 GHz CPU • Two thousand million cycles per second Consider a hard-disk transferring data at 10 megabytes per second
The big speed difference Consider a 2 GHz CPU • Two thousand million cycles per second Consider a hard-disk transferring data at 10 megabytes per second For every byte read from disk, CPU does about 200 cycles Ratio is 200 to 1
The big speed difference • Two implications arising from big difference in speed: 1. We need buffers 2. The CPU should be deployed elsewhere
The big speed difference • Two implications arising from big difference in speed: 1. We need buffers So the CPU does not have to wait while IO operations takes place
The big speed difference • Two implications arising from big difference in speed: 1. We need buffers 2. The CPU should be deployed elsewhere This means dividing its attention among many tasks
Basic Computer Architecture • Dividing CPU’s attention among many tasks And we need interrupts Task 1 Interrupt service routine Task 2
Basic Computer Architecture • Dividing CPU’s attention among many tasks And we need interrupts Time allocated to a task is up Higher priority request from another program Request to update the real time clock Exceptions encountered in a program Completion of an IO operation
Connexion au compte
Connectez-vous pour publier votre contenu sur SlideServe.