Distributed processing

definition – Collection of hardware, software, and communication devices among which tasks are spread. 

May be very coordinated (multiprocessor computer) or very open (Internet)

All networks are distributed systems, but not all distributed systems are networks.

 

 

Parallel processing

Be able to read and create CPM charts, given a list of tasks with their dependencies and times.

Be able to use a CPM chart to decide how to assign tasks to parallel processors.

 

Network architecture

Draw and recognize bus, ring, star, hierarchy, network (fully-distributed and irregular) and hybrid

Give strong and weak points of each

Privacy

Security

External

Internal

Cost

Reliability

 

Network protocols

Reason for layer architectures

OSI

Names of layers

Basic jobs of each

Internet 4-layer model

Names of layers

Task of each in communication at source, destination, and final nodes

TCP/IP (including UDP)

IP addresses

Symbolic domain names

URL’s – identify all parts

Token ring

CSMA/CD

 

Search engines

Two types, keyword and concept-based (thematic)

Use of metatags to guide search engine robots

 

Web basics

Location and protection of Web documents in your H: drive

Basic tags

<HTML>

<HEAD>

<BODY> bgcolor, background, text, link, vlink attributes

<TITLE>

<BR>

<P>

<UL>

<OL>

<LI>

<IMG> src, border attributes

<A>

<FONT> color attribute

<CENTER>

 

Color codes

Be able to interpret codes; predict colors in simple cases (black, white, red, green, blue, purple) and be able to tell which of two colors is darker.

Contention

Deadlock

            Be able to construct, identify deadlock from two processes

            Know the three conditions necessary for deadlock (sufficient?)

            Cannot predict and avoid

            Cannot (perfectly) detect or resolve.

            Can prevent absolutely by denying one of three conditions (but at what cost?)

            Can reduce by good  programming practices (what practices?)

                        Use as few unsharable resources as possible

                        Do not overlap use of unsharables more than necessary

            Can recover from deadlock-caused losses by good programming practices

                        Logs

                        Rollbacks

                        BACKUPS!!!

            Can prevent with test_and_set – cooperation between system and good,

conscientious, knowledgeable programmers

Lost update

            Be able to construct, identify lost update from two processes

            Locking

            Granularity

Be particularly clear about the difference between lost update and deadlock – they’re related but very different.  Both caused by two processes that share resources (broadly defined) but one results in loss of data (often without any sign that it has happened) and one results in loss of use of resources and lockup of processes, and is usually VERY obvious.

 

Photoshop

            Layers

            What are GIF and JPEG? 

Why are they important?

            What is an animated GIF?

Why use it instead of Flash?

Flash

            Layers

            What is tweening

            What are vector graphics, what’s their relation to bitmap/raster graphics

 

XML

            Why separate content (data) and formatting

XML document defines data structure

            Stylesheet (XSL) defines formatting

           

 

 

Cycle-sharing –

How

Why are machine cycles called “perishable commodities”?

Why would anyone do this

advantages

dangers

 

            Seti@home

            Seti@home problem

            Cycle brokers (future?)