🗊Презентация Архитектура вычислительных систем. Синхронизация процессов

Нажмите для полного просмотра!
Архитектура вычислительных систем. Синхронизация процессов, слайд №1Архитектура вычислительных систем. Синхронизация процессов, слайд №2Архитектура вычислительных систем. Синхронизация процессов, слайд №3Архитектура вычислительных систем. Синхронизация процессов, слайд №4Архитектура вычислительных систем. Синхронизация процессов, слайд №5Архитектура вычислительных систем. Синхронизация процессов, слайд №6Архитектура вычислительных систем. Синхронизация процессов, слайд №7Архитектура вычислительных систем. Синхронизация процессов, слайд №8Архитектура вычислительных систем. Синхронизация процессов, слайд №9Архитектура вычислительных систем. Синхронизация процессов, слайд №10Архитектура вычислительных систем. Синхронизация процессов, слайд №11Архитектура вычислительных систем. Синхронизация процессов, слайд №12Архитектура вычислительных систем. Синхронизация процессов, слайд №13Архитектура вычислительных систем. Синхронизация процессов, слайд №14Архитектура вычислительных систем. Синхронизация процессов, слайд №15Архитектура вычислительных систем. Синхронизация процессов, слайд №16Архитектура вычислительных систем. Синхронизация процессов, слайд №17Архитектура вычислительных систем. Синхронизация процессов, слайд №18Архитектура вычислительных систем. Синхронизация процессов, слайд №19Архитектура вычислительных систем. Синхронизация процессов, слайд №20Архитектура вычислительных систем. Синхронизация процессов, слайд №21Архитектура вычислительных систем. Синхронизация процессов, слайд №22Архитектура вычислительных систем. Синхронизация процессов, слайд №23Архитектура вычислительных систем. Синхронизация процессов, слайд №24Архитектура вычислительных систем. Синхронизация процессов, слайд №25Архитектура вычислительных систем. Синхронизация процессов, слайд №26Архитектура вычислительных систем. Синхронизация процессов, слайд №27Архитектура вычислительных систем. Синхронизация процессов, слайд №28Архитектура вычислительных систем. Синхронизация процессов, слайд №29Архитектура вычислительных систем. Синхронизация процессов, слайд №30Архитектура вычислительных систем. Синхронизация процессов, слайд №31Архитектура вычислительных систем. Синхронизация процессов, слайд №32Архитектура вычислительных систем. Синхронизация процессов, слайд №33Архитектура вычислительных систем. Синхронизация процессов, слайд №34

Вы можете ознакомиться и скачать презентацию на тему Архитектура вычислительных систем. Синхронизация процессов. Доклад-сообщение содержит 34 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





АРХИТЕКТУРА ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ
РАЗДЕЛ 3.1
СИНХРОНИЗАЦИЯ ПРОЦЕССОВ
Описание слайда:
АРХИТЕКТУРА ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ РАЗДЕЛ 3.1 СИНХРОНИЗАЦИЯ ПРОЦЕССОВ

Слайд 2


Архитектура вычислительных систем. Синхронизация процессов, слайд №2
Описание слайда:

Слайд 3


Архитектура вычислительных систем. Синхронизация процессов, слайд №3
Описание слайда:

Слайд 4


Архитектура вычислительных систем. Синхронизация процессов, слайд №4
Описание слайда:

Слайд 5


Архитектура вычислительных систем. Синхронизация процессов, слайд №5
Описание слайда:

Слайд 6


Архитектура вычислительных систем. Синхронизация процессов, слайд №6
Описание слайда:

Слайд 7


Архитектура вычислительных систем. Синхронизация процессов, слайд №7
Описание слайда:

Слайд 8


Архитектура вычислительных систем. Синхронизация процессов, слайд №8
Описание слайда:

Слайд 9


Архитектура вычислительных систем. Синхронизация процессов, слайд №9
Описание слайда:

Слайд 10


Архитектура вычислительных систем. Синхронизация процессов, слайд №10
Описание слайда:

Слайд 11


Архитектура вычислительных систем. Синхронизация процессов, слайд №11
Описание слайда:

Слайд 12


Архитектура вычислительных систем. Синхронизация процессов, слайд №12
Описание слайда:

Слайд 13


Архитектура вычислительных систем. Синхронизация процессов, слайд №13
Описание слайда:

Слайд 14


Архитектура вычислительных систем. Синхронизация процессов, слайд №14
Описание слайда:

Слайд 15


Архитектура вычислительных систем. Синхронизация процессов, слайд №15
Описание слайда:

Слайд 16





                                                              Пример для C++(1):
                                                              Пример для C++(1):
// Библиотека потоков POSIX
#include <pthread.h>
typedef pthread_mutex_t CRIT_SECTION;
....
// Функции для работы со стандартными типами
void WTF_InitCritSect(CRIT_SECTION * cs) {pthread_mutex_init(cs, NULL); }
void WTF_EnterCritSect(CRIT_SECTION * cs) {pthread_mutex_lock(cs); }
void WTF_LeaveCritSect(CRIT_SECTION * cs) {pthread_mutex_unlock(cs); }
void WTF_DestroyCritSect(CRIT_SECTION * cs) {pthread_mutex_destroy(cs); }
...
 
Описание слайда:
Пример для C++(1): Пример для C++(1): // Библиотека потоков POSIX #include <pthread.h> typedef pthread_mutex_t CRIT_SECTION; .... // Функции для работы со стандартными типами void WTF_InitCritSect(CRIT_SECTION * cs) {pthread_mutex_init(cs, NULL); } void WTF_EnterCritSect(CRIT_SECTION * cs) {pthread_mutex_lock(cs); } void WTF_LeaveCritSect(CRIT_SECTION * cs) {pthread_mutex_unlock(cs); } void WTF_DestroyCritSect(CRIT_SECTION * cs) {pthread_mutex_destroy(cs); } ...  

Слайд 17





void main (void) {                               Пример для C++(2):
void main (void) {                               Пример для C++(2):
    pthread_t task1, task2, task3;
    ...
	// Создпние потоков, которые будут бороться за ресурс
    pthread_create (&task1, NULL, TaskThread, (void*) &thread1Info);
    pthread_create (&task2, NULL, TaskThread, (void*) &thread2Info);
    pthread_create (&task3, NULL, TaskThread, (void*) &thread3Info);
    pthread_detach (task1);  //независимое исполн потоков
    pthread_detach (task2);
    pthread_detach (task3);
    … }
Описание слайда:
void main (void) { Пример для C++(2): void main (void) { Пример для C++(2): pthread_t task1, task2, task3; ... // Создпние потоков, которые будут бороться за ресурс pthread_create (&task1, NULL, TaskThread, (void*) &thread1Info); pthread_create (&task2, NULL, TaskThread, (void*) &thread2Info); pthread_create (&task3, NULL, TaskThread, (void*) &thread3Info); pthread_detach (task1); //независимое исполн потоков pthread_detach (task2); pthread_detach (task3); … }

Слайд 18





void * TaskThread (void* threadInfo) {      Пример для C++(3):
void * TaskThread (void* threadInfo) {      Пример для C++(3):
    // Код, конфигурирующий работу потока согласно 
    // параметрам, переданным через threadInfo.
    // Например, N – объём ресурса, необходимый потоку
   ...
    // Основной цикл работы, в котором 
    // происходит обращение к ресурсу
    while (1) {   ...
        PrinterMonitor::instance().acquirePages (N); // Блокирующий запрос ресурса
        // Процесс что-то печатает на страницах
        PrinterMonitor::instance().addPaperToTray (N); // Процесс освобождения    
                                                                                     ресурса
	...    }
    ...}
 
Описание слайда:
void * TaskThread (void* threadInfo) { Пример для C++(3): void * TaskThread (void* threadInfo) { Пример для C++(3): // Код, конфигурирующий работу потока согласно // параметрам, переданным через threadInfo. // Например, N – объём ресурса, необходимый потоку ... // Основной цикл работы, в котором // происходит обращение к ресурсу while (1) { ... PrinterMonitor::instance().acquirePages (N); // Блокирующий запрос ресурса // Процесс что-то печатает на страницах PrinterMonitor::instance().addPaperToTray (N); // Процесс освобождения ресурса ... } ...}  

Слайд 19





// Паттерн Singleton                            Пример для C++(4):
// Паттерн Singleton                            Пример для C++(4):
const int gPagesTotal = 10; // Общий объём ресурса
class PrinterMonitor {// Монитор ресурса
	int pagesLeft;
	   CRIT_SECTION lock; // объект для синхронизации
	…
	public:
	static PrinterMonitor instance () {…} // Получение объекта монитора
	void addPaperToTray (int N) {    // Освобождение ресурса
		pagesLeft += N;		 // Освободить N страниц         
	}
 
Описание слайда:
// Паттерн Singleton Пример для C++(4): // Паттерн Singleton Пример для C++(4): const int gPagesTotal = 10; // Общий объём ресурса class PrinterMonitor {// Монитор ресурса int pagesLeft; CRIT_SECTION lock; // объект для синхронизации … public: static PrinterMonitor instance () {…} // Получение объекта монитора void addPaperToTray (int N) { // Освобождение ресурса pagesLeft += N; // Освободить N страниц }  

Слайд 20





    // Блокирующий захват ресурсов   Пример для C++(5):
    // Блокирующий захват ресурсов   Пример для C++(5):
	void acquirePages (int N) {
                        WTF_EnterCritSect (& lock);
		             // Ждать, пока освободится N страниц
		             while (pagesLeft < N) {}
			// Захватить нужный объём ресурса
		             pagesLeft -= N;
                        WTF_LeaveCritSect (& lock);
	}
}
 
Описание слайда:
// Блокирующий захват ресурсов Пример для C++(5): // Блокирующий захват ресурсов Пример для C++(5): void acquirePages (int N) { WTF_EnterCritSect (& lock); // Ждать, пока освободится N страниц while (pagesLeft < N) {} // Захватить нужный объём ресурса pagesLeft -= N; WTF_LeaveCritSect (& lock); } }  

Слайд 21





static class WTF_Lock extends Object {} Пример для Java(1):
static class WTF_Lock extends Object {} Пример для Java(1):
static public WTF_Lock lockObject = new WTF_Lock();
…
package chapt14;
// Класс монитора ресурсов, также Singleton
public class PrinterMonitor {
	     int pagesLeft = 10;
	   WTF_Lock lock = new WTF_Lock();
	    ...
	    public static PrinterMonitor instance () {…}
	    public void addPaperToTray (int N) {
		      // Освободить ресурс – аналогично добавлению 
	             //N страниц в лоток принтера
		      pagesLeft += N;		}
 
Описание слайда:
static class WTF_Lock extends Object {} Пример для Java(1): static class WTF_Lock extends Object {} Пример для Java(1): static public WTF_Lock lockObject = new WTF_Lock(); … package chapt14; // Класс монитора ресурсов, также Singleton public class PrinterMonitor { int pagesLeft = 10; WTF_Lock lock = new WTF_Lock(); ... public static PrinterMonitor instance () {…} public void addPaperToTray (int N) { // Освободить ресурс – аналогично добавлению //N страниц в лоток принтера pagesLeft += N; }  

Слайд 22





// Блокирующий захват ресурса          Пример для Java(2):          
// Блокирующий захват ресурса          Пример для Java(2):          
	public void acquirePages (int N) {
		 synchronized (WTF_Lock) {
		 // Ждать, пока освободится N страниц
		 while (pagesLeft < N) {}
		// Захватить нужный объём ресурса
		pagesLeft -= N;
	    }
     }
}
Описание слайда:
// Блокирующий захват ресурса Пример для Java(2): // Блокирующий захват ресурса Пример для Java(2): public void acquirePages (int N) { synchronized (WTF_Lock) { // Ждать, пока освободится N страниц while (pagesLeft < N) {} // Захватить нужный объём ресурса pagesLeft -= N; } } }

Слайд 23





  public class SomeThreads {                 Пример для Java(3): 
  public class SomeThreads {                 Пример для Java(3): 
    public static void main(String args[]) {
        final StringBuffer s = new StringBuffer();
        // Запуск потоков, использующих ресурс
        new Thread() {
            public void run() {
                // Блокирующий запрос ресурса
                PrinterMonitor::instance().acquirePages (N);
                // Использование ресурса
                // Процесс освобождения ресурса
                PrinterMonitor::instance().addPaperToTray (N);
            }
        }
Описание слайда:
public class SomeThreads { Пример для Java(3): public class SomeThreads { Пример для Java(3): public static void main(String args[]) { final StringBuffer s = new StringBuffer(); // Запуск потоков, использующих ресурс new Thread() { public void run() { // Блокирующий запрос ресурса PrinterMonitor::instance().acquirePages (N); // Использование ресурса // Процесс освобождения ресурса PrinterMonitor::instance().addPaperToTray (N); } }

Слайд 24





	.start();                                              Пример для Java(4): 
	.start();                                              Пример для Java(4): 
     // Ещё один аналогичный поток
 	new Thread() {
     public void run() {
	      ...
	      PrinterMonitor.instance().acquirePages (N);
	        // Process doing some printing
	      PrinterMonitor.instance().addPaperToTray (N);
	       ...
          }
       }
.start();
 ...
}
Описание слайда:
.start(); Пример для Java(4): .start(); Пример для Java(4): // Ещё один аналогичный поток new Thread() { public void run() { ... PrinterMonitor.instance().acquirePages (N); // Process doing some printing PrinterMonitor.instance().addPaperToTray (N); ... } } .start(); ... }

Слайд 25


Архитектура вычислительных систем. Синхронизация процессов, слайд №25
Описание слайда:

Слайд 26





Реализация синхронизации в Java
static Semaphore mutex = new Semaphore(1);
…
//consumer thread
void run() {
	…
	//critical section
	mutex.acquire();
	…
	mutex.release();
	…
}
Описание слайда:
Реализация синхронизации в Java static Semaphore mutex = new Semaphore(1); … //consumer thread void run() { … //critical section mutex.acquire(); … mutex.release(); … }

Слайд 27


Архитектура вычислительных систем. Синхронизация процессов, слайд №27
Описание слайда:

Слайд 28


Архитектура вычислительных систем. Синхронизация процессов, слайд №28
Описание слайда:

Слайд 29


Архитектура вычислительных систем. Синхронизация процессов, слайд №29
Описание слайда:

Слайд 30


Архитектура вычислительных систем. Синхронизация процессов, слайд №30
Описание слайда:

Слайд 31


Архитектура вычислительных систем. Синхронизация процессов, слайд №31
Описание слайда:

Слайд 32


Архитектура вычислительных систем. Синхронизация процессов, слайд №32
Описание слайда:

Слайд 33


Архитектура вычислительных систем. Синхронизация процессов, слайд №33
Описание слайда:

Слайд 34


Архитектура вычислительных систем. Синхронизация процессов, слайд №34
Описание слайда:



Похожие презентации
Mypresentation.ru
Загрузить презентацию