100% de satisfacción garantizada Inmediatamente disponible después del pago Tanto en línea como en PDF No estas atado a nada 4.2 TrustPilot
logo-home
Resumen

Summary Computer Science CSC2002S | Notes covering the entire course

Puntuación
-
Vendido
2
Páginas
237
Subido en
08-01-2024
Escrito en
2023/2024

These notes cover all content covered in the course - 1. Parallel + concurrent computing. 2. Architecture. 3. Mobile design and development. These notes are in Word format to allow you to edit and add content that may be added. These notes allowed me to achieve above 70% in both theory tests and a final mark of 75%.

Mostrar más Leer menos
Institución
Grado











Ups! No podemos cargar tu documento ahora. Inténtalo de nuevo o contacta con soporte.

Escuela, estudio y materia

Institución
Grado

Información del documento

Subido en
8 de enero de 2024
Número de páginas
237
Escrito en
2023/2024
Tipo
Resumen

Temas

Vista previa del contenido

CSC2002S Notes




1. Parallel and Concurrent Programming ................................................................................. 2
2. Architecture ................................................................................................................................. 84
3. Mobile Development and Design ...................................................................................... 181

,1. Parallel and Concurrent Programming

Parallelism versus Concurrency

Parallel program:
• Use extra computational resources to solve a problem faster (increasing
throughput via simultaneous execution).




Parallel algorithm example:
• May get roughly 4x speedup – array sum




Concurrent program:
• Correctly and efficiently manage access to shared resources (from multiple
possibly-simultaneous clients).
• Uses synchronization to prevent multiple operations from interleaving in a
way that leads to incorrect results

,Concurrency algorithm example:
• Prevent bad interleaving (correctness).
• But allow some concurrent access (performance).




Checkpoint
Your Java web server needs to keep track of the number of accesses to particular
web pages. As defined in this course, this is a:

A. parallel programming problem
B. concurrent programming problem
C. Both A and B
D. neither A nor B

→C

Concurrency Problems – Race Conditions

• A race condition is an error in a program where the output and/or result of
the process is unexpectedly and critically dependent on the relative sequence
or timing of other events.
• The idea is that the events race each other to influence the output first.

NOTE: Unintended race conditions are incredibly common in concurrent programs.

Example:
Therac-25, a radiation therapy machine for cancer treatment used software safety
systems that had a race condition between operator text input and software
configuring the electron beam. Caused by users hitting the up arrow too quickly,
preventing the system from properly registering their edits.

→ Resulted in an occasional 100X radiation dose, that lead to several deaths.

, Nondeterminism

In sequential programs, instructions are executed in a fixed order determined by the
program and its input. The execution of one procedure does not overlap in time with
another.
→ Deterministic

In concurrent programs, computational activities may overlap in time and the
subprogram executions describing these activities proceed concurrently.
→ Non-deterministic

NOTE: It is not possible to tell, by looking at the program, what will happen when it
executes.

Parallel/Concurrent Complexity

Managing parallel complexity and the principles and techniques necessary for the
construction of well-behaved and efficient parallel and concurrent programs.

NOTE: General rule is to stay sequential if possible.

When parallel programming is necessary

High Performance Computing (HPC):
• Uses cutting-edge parallel computers to solve “grand-challenge” problems.
• Programmers write programs to solve such computationally large problems
that it would take years, or centuries, for one computer to finish it.

NOTE: Parallel programming is essential to use the computing power of multicore
architectures → Most current desktop and laptop computers have multiple cores.

When concurrent programming is necessary

Complex programs like:
• Operating systems, web browsers, real-time systems, event-based
implementations of graphical user interfaces, multiuser games, chats and
ecommerce.
• Handle multiple things happening at once and therefore are multithreaded.
• Many concurrent threads run simultaneously.
$4.63
Accede al documento completo:

100% de satisfacción garantizada
Inmediatamente disponible después del pago
Tanto en línea como en PDF
No estas atado a nada

Conoce al vendedor
Seller avatar
joshbirkholtz

Documento también disponible en un lote

Conoce al vendedor

Seller avatar
joshbirkholtz University of Cape Town
Seguir Necesitas iniciar sesión para seguir a otros usuarios o asignaturas
Vendido
6
Miembro desde
3 año
Número de seguidores
0
Documentos
4
Última venta
2 meses hace

0.0

0 reseñas

5
0
4
0
3
0
2
0
1
0

Recientemente visto por ti

Por qué los estudiantes eligen Stuvia

Creado por compañeros estudiantes, verificado por reseñas

Calidad en la que puedes confiar: escrito por estudiantes que aprobaron y evaluado por otros que han usado estos resúmenes.

¿No estás satisfecho? Elige otro documento

¡No te preocupes! Puedes elegir directamente otro documento que se ajuste mejor a lo que buscas.

Paga como quieras, empieza a estudiar al instante

Sin suscripción, sin compromisos. Paga como estés acostumbrado con tarjeta de crédito y descarga tu documento PDF inmediatamente.

Student with book image

“Comprado, descargado y aprobado. Así de fácil puede ser.”

Alisha Student

Preguntas frecuentes