1 SOFTWARE ARCHITECTURE SUMMARY Tatsuya Hagino hagino@sfc.keio.ac.jp
2 1. Operating System What is operating system? Fundamental Software Popular operating system Windows Mac OS X Unix, Linux Role of Operating System Arbitration of hardware usage conflict Separation of programs Multi-programming Memory management File system Network system Communication among programs Operating System Structure Application Operating System System call processing File System Process Management Network Management Memory Management Scheduler Device Management Bootstrap Hardware
3 2. File System What is a file? file name file structure file type file access method Hierarchical file system path name (absolute or relative) Read and write files system calls file descriptor standard input output libraries OS application standard input output library system call buffer management Implementation of file system inode device drive hardware HDD SSD
4 3. Shell Functions of Shell Start and control programs Setting execution environment Useful functions Running scripts ap user shell ap Process related system calls fork, exec, wait, exit OS Kernel Shell features foreground or background job control redirection shell and environment variables wild card ap
5 4. Text Formatting System TeX features formatting math formulae macros WEB TeX formatting hbox and vbox glue infinite glue optimization Others LaTeX Postscript PDF glue box box box tex left hfil hfil center hfil latex macros rght hfil latex
6 5. Compiler Programming language high and low level compiler vs interpreter Compiler structure pre-process lexical analysis syntax analysis semantic analysis optimization code generation Syntax analysis parse tree context free grammar, BNF Optimization peephole optimization loop optimization high level programming language source program high level programming language source program = translate compiler i 1 i interpret <= machine language object program for interpreter parse tree ++ 100 i abc execute execute = [] i i CPU CPU
7 6. LISP LISP (LIST Processing) features based on lambda calculus symbolic manipulation used in artificial intelligence functional programming language recursive call LISP object single data type program as data atom and list Basic functions car, cdr cons cond Garbage collection ((a. ()). (3. ((c. 5). b)))... a () 3.. b c 5 3 b a c 5
8 7. Java Virtual Machine set of objects Java object data object data object-oriented programming language C like syntax message object data object message data Object-oriented programming language objects passing messages Super Class encapsulation inheritance class and inheritance Sub Class Java virtual machine speed and portability JIT compiler Java translate Java virtual machine language execute CPU source program Java compiler object program Java virtual machine
9 8. Network System Distributed system Transparency access location concurrent replication failure relocation performance scale Communication model client server model RPC function shipping group multicast P2P client request RPC reply server local access network remote host P2P client MP3 application local resource remote resource client MP3 client MP3 client MP3
10 9. Name Resolution Internet protocol TCP/IP IPv4とIPv6 Application protocol domain zone delegated domains Hierarchical name DNS root name server OP=query 13 Q=www.sfc.keio.ac.jp anycast client A=<empty> name server cache mail server resolution OP=reply Q=www.sfc.keio.ac.jp A=133.27.4.212
11 10. Remote Access and E-Mail Telnet One of oldest TCP/IP protocols implement virtual terminal on internet security problem SSH encryption and authentication several authentication mechanisms multiple channels Electric mail most popular internet protocol multiple RFCs mail client (MUA) SMTP POP/IMAP security problem SPAM
12 11. Distributed File System File sharing using online storage Web interface Dropbox, Google Drive, Sky Drive, icloud, etc. automatic synchronization application File sharing using applications port 21 FTP control file system File sharing by OS FTP client data transfer port 20 FTP server distributed file system / / NFS AFS usr home hagino ns remote mount usr home hagino ns NSF server NFS client
13 12. World Wide Web World Wide Web internet + hypertext WWW Three First Inventions Write uments as hypertexts using HTML Use URL to specify locations Use HTTP to transfer uments from server to browser HTML HTML HTML HTML Web server HTTP Internet HTML client Web browser HTTP simplification of anonymous FTP multimedia language negotiation GET vs POST HEAD GET retrieve Web 資源 update process POST PUT DELETE
15 14. Database System Database Database Management System relational database Relational database relational operations restriction projection join SQL table table Lock concurrent process deadlock