1. Ч. Хоар. Взаимодействующие последовательные процессы
2. Э. Дейкстра. Взаимодействие последовательных процессов
P.S. Найдено на rsdn.
Показаны сообщения с ярлыком материалы. Показать все сообщения
Показаны сообщения с ярлыком материалы. Показать все сообщения
понедельник, 11 января 2010 г.
понедельник, 14 декабря 2009 г.
Intel: Technical Books for Multi-Core Software Developers
Technical Books for Multi-Core Software Developers = 13 (and yet some in comments) books from Intel point of view.
среда, 2 декабря 2009 г.
Java Platform Security
Безопастность в Java состоит из двух частей:
1) Java Platform Security - то что называется sandbox, обеспечение на уровне JVM;
2) множенство API для криптографии, SSL, HTTPS, Kerberos, etc.
Для ознакомления с 1)Java Platform Security рекомендуется прочитать главы 7 и 8 из "Enterprise Java 2 Security: Building Secure and Robust J2EE Applications".
Chapter 7. J2SE Security Fundamentals
7.1 Access to Classes, Interfaces, Fields, and Methods
7.2 Class Loaders
7.3 The Class File Verifier
7.4 The Security Manager
7.5 Interdependence of the Three Java Security Legs
7.6 Summary
Chapter 8. The Java 2 Permission Model
8.1 Overview of the Java 2 Access-Control Model
8.2 Java Permissions
8.3 Java Security Policy
8.4 The Concept of CodeSource
8.5 ProtectionDomains
8.6 The Basic Java 2 Access-Control Model
8.7 Privileged Java 2 Code
8.8 ProtectionDomain Inheritance
8.9 Performance Issues in the Java 2 Access-Control Model
8.10 Summary
P.S. Книга уже есть на concurrentlib.livejournal.com.
1) Java Platform Security - то что называется sandbox, обеспечение на уровне JVM;
2) множенство API для криптографии, SSL, HTTPS, Kerberos, etc.
Для ознакомления с 1)Java Platform Security рекомендуется прочитать главы 7 и 8 из "Enterprise Java 2 Security: Building Secure and Robust J2EE Applications".
Chapter 7. J2SE Security Fundamentals
7.1 Access to Classes, Interfaces, Fields, and Methods
7.2 Class Loaders
7.3 The Class File Verifier
7.4 The Security Manager
7.5 Interdependence of the Three Java Security Legs
7.6 Summary
Chapter 8. The Java 2 Permission Model
8.1 Overview of the Java 2 Access-Control Model
8.2 Java Permissions
8.3 Java Security Policy
8.4 The Concept of CodeSource
8.5 ProtectionDomains
8.6 The Basic Java 2 Access-Control Model
8.7 Privileged Java 2 Code
8.8 ProtectionDomain Inheritance
8.9 Performance Issues in the Java 2 Access-Control Model
8.10 Summary
P.S. Книга уже есть на concurrentlib.livejournal.com.
Ярлыки:
материалы
вторник, 1 декабря 2009 г.
Множество материала по Scala
На главном сайте Scala обнаружено множество материала - вот. Включая даже, скажем, PhD Thesis.
вторник, 24 ноября 2009 г.
Java Core
По моим представлениям Java Core состоит из:
1) синтаксис
2) java.lang.*, java.util.*, java.io.*
3) работа с исключениями
4) Java Collection Framework
5) начальные знания по многопоточности
Для детального изучения я рекомендую:
а) "Effective Java (2nd Edition)" by Joshua Bloch
б) "Java Puzzlers: Traps, Pitfalls, and Corner Cases" by Joshua Bloch and Neal Gafter
в) "Java Generics and Collections"
г) "Java I/O"
д) по многопоточке я ранее публиковал, там было пару вводных книг (Java Thread Programming или Java Threads)
P.S. Обновилось concurrentlib.livejournal.com.
1) синтаксис
2) java.lang.*, java.util.*, java.io.*
3) работа с исключениями
4) Java Collection Framework
5) начальные знания по многопоточности
Для детального изучения я рекомендую:
а) "Effective Java (2nd Edition)" by Joshua Bloch
б) "Java Puzzlers: Traps, Pitfalls, and Corner Cases" by Joshua Bloch and Neal Gafter
в) "Java Generics and Collections"
г) "Java I/O"
д) по многопоточке я ранее публиковал, там было пару вводных книг (Java Thread Programming или Java Threads)
P.S. Обновилось concurrentlib.livejournal.com.
Ярлыки:
материалы
среда, 14 октября 2009 г.
Книги на LJ
Книги буду выкладывать тут concurrentlib.livejournal.com.
Там уже есть, качайте.
Там уже есть, качайте.
Ярлыки:
материалы
вторник, 29 сентября 2009 г.
Микро-курс по concurrency от SUN
Тут микро-курс по concurrency от SUN. Даже с двумя упражнениями в конце :). Стоит прочитать.
P.S. Кстати тут и тут просто множество коротеньких курсов от SUN по разнообразным базовым темам из Явы.
P.S. Кстати тут и тут просто множество коротеньких курсов от SUN по разнообразным базовым темам из Явы.
Материалы по lock-free
Тут в Вики статья "Non-blocking synchronization". Обратите внимание на различия в Wait-freedom, Lock-freedom и Obstruction-freedom.
Тут в Вики часть статьи "Lock" с подзаголовком "The problems with locks".
Тут на русском, тут на английском статья "Введение в неблокирующие алгоритмы". Рассматриваются:
- Неблокирующий счетчик
- Неблокирующий стек Трайбера (Treiber)
- Неблокирующая очередь Майкла-Скотта (Michael-Scott)
P.S. Именно очередь Майкла-Скотта использована в java.util.concurrent.ConcurrentLinkedQueue. Там в javadoc так и написано "This implementation employs an efficient "wait-free" algorithm based on one described in Simple, Fast, and Practical Non-Blocking and Blocking Concurrent Queue Algorithms by Maged M. Michael and Michael L. Scott.".
Тут в Вики часть статьи "Lock" с подзаголовком "The problems with locks".
Тут на русском, тут на английском статья "Введение в неблокирующие алгоритмы". Рассматриваются:
- Неблокирующий счетчик
- Неблокирующий стек Трайбера (Treiber)
- Неблокирующая очередь Майкла-Скотта (Michael-Scott)
P.S. Именно очередь Майкла-Скотта использована в java.util.concurrent.ConcurrentLinkedQueue. Там в javadoc так и написано "This implementation employs an efficient "wait-free" algorithm based on one described in Simple, Fast, and Practical Non-Blocking and Blocking Concurrent Queue Algorithms by Maged M. Michael and Michael L. Scott.".
воскресенье, 27 сентября 2009 г.
Еще книги по Java Concurrent Programming
Еще книги по Java Concurrent Programming:
1) Грегори Р. Эндрюс "Основы многопоточного, параллельного и распределенного программирования" (есть у Игоря в djvu, у Ивана и Романа - в бумажном виде). Отличная книга, стоит иметь на книжной полке. Я купил в Буксе за 40 гривен. Много теории не привязанной к конкретному языку, более 250 упражнений (вообще великолепно:)). Настоящий университетский учебник.
2) "Java Thread Programming" by Paul Hyde Sams © 1999, 510 pages, ISBN: 0672315858. Очень хорошая книга для старта. Автор разбирает большинство моментов программирования потоков именно на яве. Вот оглавление:
1) Грегори Р. Эндрюс "Основы многопоточного, параллельного и распределенного программирования" (есть у Игоря в djvu, у Ивана и Романа - в бумажном виде). Отличная книга, стоит иметь на книжной полке. Я купил в Буксе за 40 гривен. Много теории не привязанной к конкретному языку, более 250 упражнений (вообще великолепно:)). Настоящий университетский учебник.
2) "Java Thread Programming" by Paul Hyde Sams © 1999, 510 pages, ISBN: 0672315858. Очень хорошая книга для старта. Автор разбирает большинство моментов программирования потоков именно на яве. Вот оглавление:
Part I Threads Chapter 1 - Introduction to Threads Chapter 2 - A Simple Two-Thread Example Chapter 3 - Creating and Starting a Thread Chapter 4 - Implementing Runnable Versus Extending Thread Chapter 5 - Gracefully Stopping Threads
Ярлыки:
материалы
среда, 16 сентября 2009 г.
Книги по Java Concurrent Programming
Базовые книги по Java Concurrent Programming:
1) Java Concurrency in Practice from Brian Goetz, Tim Peierls, Joshua Bloch, Joseph Bowbeer, David Holmes, Doug Lea.
Достаточно простая но профессиональная. Дает введение в java.util.concurrent. Не опускается на уровень примитивов (построение монитора вручную) и не шагает по верхушкам (архитектуры серверов). Рассматривает серединку.
2) Concurrent Programming in Java: Design Principles and Pattern (2nd Edition). Второе издание, не первое! Неустаревающая классика. Объясняет устройство примитивов, пишем библиотечные классы, архитектуры серверов, сама философия многопоточности от автора(Doug Lea) известнейших библиотек(j.u.c + Fork/Join).
3) The Art of Multiprocessor Programming from Maurice Herlihy, Nir Shavit. 2008 год, суперкнига! Как устроен процессор, как писать иерархические блокировки, CLH-queuelock и много другого. Просто россыпь безценного материала. Nir Shavit - Gödel prize 2004, член Sun Labs Scalable Synchronization Research Group.
1) Java Concurrency in Practice from Brian Goetz, Tim Peierls, Joshua Bloch, Joseph Bowbeer, David Holmes, Doug Lea.
Достаточно простая но профессиональная. Дает введение в java.util.concurrent. Не опускается на уровень примитивов (построение монитора вручную) и не шагает по верхушкам (архитектуры серверов). Рассматривает серединку.
2) Concurrent Programming in Java: Design Principles and Pattern (2nd Edition). Второе издание, не первое! Неустаревающая классика. Объясняет устройство примитивов, пишем библиотечные классы, архитектуры серверов, сама философия многопоточности от автора(Doug Lea) известнейших библиотек(j.u.c + Fork/Join).
3) The Art of Multiprocessor Programming from Maurice Herlihy, Nir Shavit. 2008 год, суперкнига! Как устроен процессор, как писать иерархические блокировки, CLH-queuelock и много другого. Просто россыпь безценного материала. Nir Shavit - Gödel prize 2004, член Sun Labs Scalable Synchronization Research Group.
Ярлыки:
материалы
Ресурсы по JMM
В качестве источников информации по Java Memory Model рекомендуется использовать:
1)JSR-133: JavaTM Memory Model and Thread Specification сама спецификация.
2) особое внимание обратить на The JSR-133 Cookbook for Compiler Writers from Doug Lea. Это примеры применения спецификации на практике. Doug Lea - один из соавторов JMM и автор java.util.conrurrent + Fork/Join framework.
В качестве дополнительного материала рекомендуется:
3)JLSv3. Chapter 17.Threads and Locks 17-я глава спецификации языка.
4)The "Double-Checked Locking is Broken" Declaration декларация, тщательно проясняющая что же было broken в старой модели памяти.
5)любые материалы с сайта http://www.cs.umd.edu/~pugh/java/memoryModel/. Bill Pugh главный куратор java memory model. Содержит огромное количество материала в том числе по иным моделям памяти, полезно для интересующихся, например, темпоральной логикой.
1)JSR-133: JavaTM Memory Model and Thread Specification сама спецификация.
2) особое внимание обратить на The JSR-133 Cookbook for Compiler Writers from Doug Lea. Это примеры применения спецификации на практике. Doug Lea - один из соавторов JMM и автор java.util.conrurrent + Fork/Join framework.
В качестве дополнительного материала рекомендуется:
3)JLSv3. Chapter 17.Threads and Locks 17-я глава спецификации языка.
4)The "Double-Checked Locking is Broken" Declaration декларация, тщательно проясняющая что же было broken в старой модели памяти.
5)любые материалы с сайта http://www.cs.umd.edu/~pugh/java/memoryModel/. Bill Pugh главный куратор java memory model. Содержит огромное количество материала в том числе по иным моделям памяти, полезно для интересующихся, например, темпоральной логикой.
пятница, 11 сентября 2009 г.
Лекция #0
Общие материалы:
1) Главная статья к прочтению:
March 2005: Article By Herb Sutter "The Free Lunch Is Over: A Fundamental Turn Toward Concurrency in Software" [http://www.gotw.ca/publications/concurrency-ddj.htm].
2) частично дублирует первую:
September 2005: Article By HERB SUTTER AND JAMES LARUS, MICROSOFT: "Software and the Concurrency Revolution" [http://portal.acm.org/citation.cfm?id=1095421]
3) Сложный текст, требующий комментариев, но за 3 страницы дает представление о горизонтах на ближайшие 5 лет:
September 2006: Sun expert David Dice, senior staff engineer(JVM) blog: "Parallelism Manifesto" [http://blogs.sun.com/dave/entry/parallelism_manifesto]
Прошу обратить внимание на фразу "Traditional concurrent programming has been error-prone and difficult, making it expensive and best left to a small priesthood of specialists."
Технические материалы:
1) Пожалуй, главная статья, которая показала, что JMM не соответствует "принципу наименьшего удивления" и нуждается в изменении. Практически авторский состав этой статьи и занимался New JMM для Java 5. В статье идет речь о реализации паттерна Singleton с помощью Double-Checked Locking.
"Double-Checked Locking is Broken" [http://www.cs.umd.edu/~pugh/java/memoryModel/DoubleCheckedLocking.html]
2) Одна из причин введения в Java 5 класса java.util.concurrent.LockSupport. Документация из JDK, объясняющая
"Why Are Thread.stop, Thread.suspend, Thread.resume and Runtime.runFinalizersOnExit Deprecated?" [http://java.sun.com/j2se/1.5.0/docs/guide/misc/threadPrimitiveDeprecation.html]
Примеры:
1) Использование флага для остановки потока взято из Joshua Bloch "Effective Java (second edition)", Item 66: Synchronize access to shared mutable data, page 259.
Цитата "You might expect this program to run for about a second, after which the main thread sets stopRequested to true, causing the background thread’s loop to terminate. On my machine, however, the program never terminates: the background thread loops forever!"
2) Сознательное отсутствие использования синхронизации при работе с разделяемыми данными(private int hash) из многих потоков:
java.lang.String.java:
1) Главная статья к прочтению:
March 2005: Article By Herb Sutter "The Free Lunch Is Over: A Fundamental Turn Toward Concurrency in Software" [http://www.gotw.ca/publications/concurrency-ddj.htm].
2) частично дублирует первую:
September 2005: Article By HERB SUTTER AND JAMES LARUS, MICROSOFT: "Software and the Concurrency Revolution" [http://portal.acm.org/citation.cfm?id=1095421]
3) Сложный текст, требующий комментариев, но за 3 страницы дает представление о горизонтах на ближайшие 5 лет:
September 2006: Sun expert David Dice, senior staff engineer(JVM) blog: "Parallelism Manifesto" [http://blogs.sun.com/dave/entry/parallelism_manifesto]
Прошу обратить внимание на фразу "Traditional concurrent programming has been error-prone and difficult, making it expensive and best left to a small priesthood of specialists."
Технические материалы:
1) Пожалуй, главная статья, которая показала, что JMM не соответствует "принципу наименьшего удивления" и нуждается в изменении. Практически авторский состав этой статьи и занимался New JMM для Java 5. В статье идет речь о реализации паттерна Singleton с помощью Double-Checked Locking.
"Double-Checked Locking is Broken" [http://www.cs.umd.edu/~pugh/java/memoryModel/DoubleCheckedLocking.html]
2) Одна из причин введения в Java 5 класса java.util.concurrent.LockSupport. Документация из JDK, объясняющая
"Why Are Thread.stop, Thread.suspend, Thread.resume and Runtime.runFinalizersOnExit Deprecated?" [http://java.sun.com/j2se/1.5.0/docs/guide/misc/threadPrimitiveDeprecation.html]
Примеры:
1) Использование флага для остановки потока взято из Joshua Bloch "Effective Java (second edition)", Item 66: Synchronize access to shared mutable data, page 259.
Цитата "You might expect this program to run for about a second, after which the main thread sets stopRequested to true, causing the background thread’s loop to terminate. On my machine, however, the program never terminates: the background thread loops forever!"
2) Сознательное отсутствие использования синхронизации при работе с разделяемыми данными(private int hash) из многих потоков:
java.lang.String.java:
public final class String ... {
...
/** Cache the hash code for the string */
private int hash; // Default to 0
...
/**
* Returns a hash code for this string. The hash code for a
* String object is computed as
* s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1]
* using int arithmetic, where s[i] is the
* ith character of the string, n is the length of
* the string, and ^ indicates exponentiation.
* (The hash value of the empty string is zero.)
*
* @return a hash code value for this object.
*/
public int hashCode() {
int h = hash;
if (h == 0) {
int off = offset;
char val[] = value;
int len = count;
for (int i = 0; i < len; i++) {
h = 31*h + val[off++];
}
hash = h;
}
return h;
}
...
}
Golovach Ivan
Подписаться на:
Сообщения (Atom)