280 likes | 453 Views
COMPUTER SCIENCE: STUDY AND RESEARCH Lan Jin Tsinghua University California State University-Fresno. KNOWLEDGE AREAS OF CS CURRICULUM COMPUTER SCIENCE CURRICULUM AT CSU-FRESNO STUDENTS’ LEARNING DESIGNING A COMPUTER ON A BILLION- TRANSISTOR CHIP
E N D
COMPUTER SCIENCE:STUDY AND RESEARCHLan Jin Tsinghua University California State University-Fresno • KNOWLEDGE AREAS OF CS CURRICULUM • COMPUTER SCIENCE CURRICULUM AT CSU-FRESNO • STUDENTS’ LEARNING • DESIGNING A COMPUTER ON A BILLION- TRANSISTOR CHIP • DISTRIBUTED SYSTEMS SERVE THE ALWAYS- ON WORLD • DISTRIBUTED SOFTWARE DEVELOPMENT
Knowledge Areas of CS Curriculum • Discrete Structures • Programming Fundamentals • Algorithms and Complexity • Programming Languages • Architecture and Organization • Operating Systems • Net-centric Computing
Knowledge Areas of CS Curriculum (continued) • Human-Computer Interaction • Graphics and Visual Computing • Intelligent Systems • Information Management • Software Engineering • Social and Professional Issues • Computational Science Web site: http://computer.org/education/curricula2001.htm
40 1 Math75 Math76 41 60 112 115 113 119 117 144 172 154 164 134 146 150 186 176 124 152 156 173 166 174 148 188 126 136 177 CS CURRICULUM AT CSU-FRESNO Core Courses (28+15 units) • CSci112: Intro. To Computer Systems • CSci113: Intro. To Comp. Organization • CSci115: Algorithms & Data Structures • CSci117: Structures of Prog. Languages • CSci119: Intro. To Finite Automata • CSci144: Intro. To Operating Systems • Math75,76: College Calculus • CSci1: Critical Thinking & C. S. • CSci40: Intro. to Prog. & Problem Solving • CSci41: Intro. to Data Structures • CSci60: Foundations of C. S.
40 1 Math75 Math76 41 60 112 190 115 113 119 117 191T 144 194 172 154 198 164 134 146 150 186 176 124 152 156 173 166 174 148 188 126 136 177 CS CURRICULUM AT CSU-FRESNO 5 electives (15-17 units) • CSci124: Intro. of File Processing • CSci134: Compiler Design • CSci150: Intr. of Software Engg. • CSci154: Simulation • CSci156: Internetworking Systems & Protocols • CSci164: A.I. Programming • CSci172: Computer Graphics • CSci174: Design & Anal. Of Algorithms • CSci176: Parallel Processing • CSci186: Formal Lang. & Automata • CSci191T: Proseminar (Topic course)
CSci124,126: Data Base Systems CSci134,136: Compiler Construction CSci164,166: Artificial Intelligence CSci150,152: Software Engineering CSci176,177: Computer Architecture (Parallel/Distributed Processing) CSci172,173: Computer Graphics CSci186,188: Theory of Computation CSci144,146: System Architecture CSci144,148: System Programming CSci170 (191T): Web Programming CS CURRICULUM AT CSU-FRESNO 3 of Sequences (9-12 units)
CSci200: Intro. to Research in C.S. CSci174: Design & Anal of Algorithms or CSci188: Intro. To Computability CSci213: Computer Organization CSci217: Prog. Language Principles CSci298: Research Project or CSci299: Master’s Thesis CSci226: DB; CSci244: OS CSci250: SE; CSci264: AI CSci272: CG; CSci282: TC CSci246: PP; CSci252: SDE CSci274: Combinatorial Algo. CSci284: Automata Theory CS CURRICULUM AT CSU-FRESNO Graduate Courses (x+30 units)
A set of GE courses required for all majors. Flexible plan of study for each individual student, restricted only by prerequisites. Minimum GPA for graduation; probation otherwise. Rigid course requirement & highly competi- tive job market push the study. Co-OP program offers opportunity of full-time employment before graduation for 1 sem. TAs, GAs, and Awards at different levels. STUDENTS’ LEARNING
IC technology obeys Moore’s Law ◊ Computing power becomes half as expensive every 18-24 months. ◊ No. of transistors per chip doubles every ≈ 18 months. Predicted IC by 2005 Roadmap of SIA ◊ 200 M transistors, 0.1µm feature size ◊ 2.0-3.5 GHz ◊ 0.9-1.2 V, dynamic power could be 150W! DESIGNING A COMPUTER ON A BILLION-TRANSISTOR CHIP
Straightforward approach - to add more of: ◊ on-chip multilevel cache and prefetch buffers ◊ hardware contexts and registers ◊ large distributed on-chip DRAM ◊ processors or processing elements Extending traditional architectures ◊ a higher degree of ILP ◊ new possibility of prediction and speculation ◊ the ability of overcoming memory latencies ◊ on-chip multiprocessing and multithreading Cooperating distributed system on a chip Co-designed virtual machine DESIGNING A COMPUTER ON ABILLION-TRANSISTOR CHIP(Basic Approaches)
DESIGNING A COMPUTER ON ABILLION-TRANSISTOR CHIP(extending ILP architecture) • Deeper pipeline • Increasing use of prediction and speculation • Advanced superscalar processing • Wider instruction window • Highly intelligent optimizing compiler
DESIGNING A COMPUTER ON ABILLION-TRANSISTOR CHIP(Proposed New Processor Architectures) • Advanced Superscalar: 16 or 32 instr/cycle • Superspeculative Processor: ◊ aggressive fine-grained speculation at every step • Simultaneous Multithread Processor (SMT) • Trace (multiscalar) Processor ◊ coarse-grained traces on distr. multiple cores • Vector Intelligent RAM proc. (V-IRAM) ◊ couple vector exec. with large, high-bw DRAM • On-chip Multiprocessor (CMP) ◊ the ability of overcoming memory latencies • RAW (configurable) Processor ◊ Compiler customizes the h/w to each application
Internet — the world-wide distributed system. DS = Multiple computers + communication network + message passing + single system image Lack of central memory and a global clock Transparency with no knowledge of what, where, and how the processors execute the job. Challenges of Distributed System: ◊ Transparency: access, location, mobility, replication, concurrency, parallelism, scaling, failure, network ◊ Heterogeneity: network, computer h/w, OS, prog. languages, vendors ◊ Openness, Scalability , Reliability, Availability, Security, … DISTRIBUTED SYSTEMS SERVE THE ALWAYS-ON WORLD(DS FUNDAMENTALS)
Mobile agent Network computer Thin client DISTRIBUTED SYSTEMS SERVE THE ALWAYS-ON WORLD(CLIENT-SERVER MODEL) • Server can in turn be a client • Partitioned or replicated servers • Proxy servers and caches • Mobile code
Personal Area Network (PAN), WPAN (wireless) Bluetooth: 10m range, 1 Mbps, Local Area Network (LAN), WLAN (wireless) WaveLAN (IEEE802.11b): 1-11 Mbps over 150m Metropolitan Area Network (MAN) ATM: 155-622 Mbps over 2-50 Km, latency < 1 ms Wide Area Network (WAN) 0.010-600 Mbps, latency 100-500 ms (additional 250 ms for satellite transmission) Internetworks, the Internet DISTRIBUTED SYSTEMS SERVE THE ALWAYS-ON WORLD(Types of Networks)
TCP directly supports applications (e.g., HTTP) TCP — reliable connection-oriented communication UDP — unreliable connectionless communication IP datagrams — basic Internet transmission mechanism supporting WAN application Internet application protocols: HTTP, SMTP, FTP, telnet, NNTP by TCP; DNS by UDP DISTRIBUTED SYSTEMS SERVE THE ALWAYS-ON WORLD(Internet Protocols) Messages (UDP) or streams (TCP) UDP or TCP packets IP datagrams Network-specific frames
WAP microbrowser running on WAP-enabled devices WAP protocol stack TCP/IP stack WAP gateway Web server HDML /WML HTML /XML DISTRIBUTED SYSTEMS SERVE THE ALWAYS-ON WORLD(Wireless Internet) • WAP (Wireless Application Protocol) Wireless network • WAP offers a small, extensible protocol stack to handle mobile communications more efficiently. • XML — a powerful extensible alternative to HTML • WML — a small set of XML for wireless network • HDML — compact HTML for handheld devices
DISTRIBUTED SYSTEMS SERVE THE ALWAYS-ON WORLD(Next-gen. Internet) • Limitations of current WAN: ◊ do not deal with congestion effectively ◊ poor support for QoS ◊ low reliability ◊ no clear definition of the semantics of shared state • Internet2 Project ◊ High-speed gigapops at > 155 Mbps ◊ vBNS at 622 Mbps - 2.4 Gbps ◊ IP Multicast protocol and IPv6 ◊ Digital audio and video frameworks ◊ QoS ◊ Distributed storage management • NGI - a US government program along with vBNS
DISTRIBUTED SOFTWARE DEVELOPMENT(Remote Method Invocation) • Remote object reference specifies the remote object to receive RMI. • Remote interface provides a definition of the methods available for RMI, same as using IDL. • Remote reference module translates b/w local & remote object references & creates a table. • RMI compiler generates the proxy (one per remote object), dispatcher and skeleton (for each class of a remote object).
remote ref. module remote ref. module SERVER CLIENT 2 6 2 6 1 3 4 5 dispatcher Skeleton for B Comm. module Comm. module Object A Proxy for B Object B 9 10 7 8 11 11 DISTRIBUTED SOFTWARE DEVELOPMENT(Major Steps of a RMI ) 1. invoke RMI via proxy for B. 2. martial arguments, call rrm to translate to remote object ref. 3,4. Send the message and receive the message. 5. select the method in the skeleton. 6. call rrm to translate into remote object B, unmartial the arg. 7. execute the method, return the result. 8. martial the result in a reply message. 9,10. send the message and receive the message. 11. call rrm for the object A, unmartial the result.
DISTRIBUTED SOFTWARE DEVELOPMENT(Component-Based Development) • CBD — the 3rd “spark” of s/w development. ◊ to build s/w out of prepackaged components. ◊ S/w component — binary unit of independent production, acquisition, and deployment. ◊ S/w comp. encapsulates state & functionality. ◊ A s/w component can be plugged into distri- buted applications in its predesigned form. ◊ S/w component has a behavior specification as its formal description, that can be used for the purpose of software verification. ◊ S/w component’s interface is defined by IDL.
DISTRIBUTED SOFTWARE DEVELOPMENT(Motivation of CBD) • Motivation 1: emphasis on software reuse. • Motivation 2: success of the techniques for building GUIs, DBs, … out of components. • Motivation 3: the push for interconnection technologies: CORBA, DCOM, JavaBeans. • Motivation 4: generalization of object tech. • Motivation 5: high cost of monolithic products. • Motivation 6: The distributed computing model fosters the development of s/w components.
DISTRIBUTED SOFTWARE DEVELOPMENT(Characteristics of Component) • a well-defined, well-documented interface defining the services the comp. provides • software independence from its clients • encapsulated implementation • remote access • reusability thru abstraction and encapsulation characteristics of objects. • robustness:incorporate self-managing features, comm. seamlessly via messaging protocols.
DISTRIBUTED SOFTWARE DEVELOPMENT(Component Assembly) • Challenges of building component based DS: • not to change component’s source code • to maintain objects’ implicit dependencies • Solution: assembly approach separates architecture, component, and distributed object infrastructure concerns. • Architecture defines components in the sys. • Component view concerns comp. composition and implementation. • Distributed object infrastructure view concerns inter-comp. communication and protocols.
DISTRIBUTED SOFTWARE DEVELOPMENT(JavaBeans used as component) • use ports and links to isolate core component functions from inter-comm. mechanisms. • implement the framework using JavaBeans. • JavaBeans uses facilities for reflection: • dynamically discover an object’s structure • manipulate the object using information extracted from its .class file • extend JavaBeans using SoftBeans to refer to components. • A PortDescriptor class extends PropertyDes- criptor class. A SoftBeanInfo interface extends BeanInfo interface.
provided e e e Events observed m m Internal component m required Service Service m m Events generated e e DISTRIBUTED SOFTWARE DEVELOPMENT(JavaBeans component model) • Four elements define component’s boundary. • Three component interaction styles: • event-event: • publish event-listener registration and event dispatch methods. • observe events by event-listener interface • service-service • obtains svc required from svc provided. • event-service • Event generated triggers service provided
Port ServicePort EventPort DiscreteServicePort SessionServicePort EventGeneratePort DiscreteServiceProvidePort similar to the left EventObservePort DiscreteServiceRequirePort Link EventLink EventServiceLink ServiceLink SessionServiceLink DiscreteServiceLink LocalSessionServiceLink IIOPServiceLink RMISessionServiceLink DISTRIBUTED SOFTWARE DEVELOPMENT(Ports and Links)
RMIDiscreteServiceLink IIOPDiscreteServiceLink e lowSupply event Supplier DB sell(…) getSuppiers(…) getSuppiers(…) getSupply(…) m m m m getSupply(…) m m m shop(…) shop(…) Store Shopper Warehouse lowSupply event e discrete discrete m m buy(…) buy(…) Consumer Consumer m m shop(…) m m m principals Warehouse session session Store Store Store AssociatedStore DISTRIBUTED SOFTWARE DEVELOPMENT(An Example applying the method to Shopper pattern) RMIEventLink IIOPSessionServiceLink LocalDiscreteServiceLink