운영체제/UNIX시스템

> 전체도서 > 운영체제/UNIX시스템

>>  전체도서

>>  전산학개론

>>  프로그래밍 언어

>>  C 언어

>>  자료 구조

>>  데이터베이스/화일처리

>>  운영체제/UNIX시스템

>>  컴퓨터 구조/논리 회로

>>  데이터 통신/인터넷

>>  프로그래밍/전자상거래

>>  시스템분석/소프트웨어 공학

>>  컴퓨터 게임/멀티미디어/컴퓨터 그래픽스

>>  OA/오피스

>>  전산수학/통계학

book list

전체 도서 보기

전산학개론

프로그래밍 언어

C 언어

자료 구조

데이터베이스/화일처리

운영체제/UNIX시스템

컴퓨터 구조/논리 회로

데이터 통신/인터넷

웹 프로그래밍/전자상거래

시스템분석/
소프트웨어 공학

컴퓨터 게임/멀티미디어
컴퓨터 그래픽스

OA/오피스

이산수학/통계학

시스템 프로그래밍 - 응용 및 이론

정익사
2017-01-23
조회수 1205

시스템 프로그래밍 - 응용 및 이론

 지은이 : 이기철

 ISBN : 89-353-0402-6

 금액 : 17,000원


● 페이지 : 440페이지

● 판매처 : 절판

● 강의자료 제공

   책 소개
 책 소개
시스템 프로그래밍 입문서. 이 책은 UNIX/LINUX 쉘 사용법과 C언어의 기초적인 설명부터 시작한다. 네트워크 관련 시스템 호출과 다중 쓰레딩 환경에서의 코딩법, 어셈블러, 연결과 적재, M6 매크로 프로세서 등의 제작 방법도 다루고 있다.
 저자소개
 목차
part 1

1장 서론 2
1.1 시스템 프로그램이란 무엇인가? 2
1.2 시스템 프로그램의 분류 3
1.2.1 언어 프로세서 / 3
1.2.2 운영체제 / 4
1.2.3 그 밖의 시스템 프로그램 / 5
1.3 책의 구성 6
1.4 책의 계통도 8

2장 UNIX 시스템 환경 11
2.1 초기 UNIX 시스템의 발전과 계보 11
2.2 UNIX 시스템의 구조와 특징 14
2.2.1 UNIX 시스템의 구조 / 14
2.2.2 UNIX 시스템의 특징 / 16
2.3 UNIX 시스템의 쉘 명령어 20
2.3.1 UNIX 세션 / 20
2.3.2 우편 / 23
2.3.3 매뉴얼 / 23
2.3.4 화일 관련 명령어 / 24
2.3.5 디렉토리 / 33
2.3.6 쉘 / 36
ⅴ2.4 쉘(Shell) 프로그래밍 46
2.5 요약 49

3장 표준 입출력을 이용한 C 프로그래밍 53
3.1 표준입력과 표준출력:show 53
3.2 프로그램의 인수:show의 버전 2 57
3.3 화일의 사용:show의 버전 3 58
3.4 페이지 단위 출력 프로그램 p 버전 1 63
3.5 페이지 단위 출력 프로그램 p 버전 2:페이지길이 선택사항 이용하기 67
3.6 이름으로 프로세스 죽이기 kp 68
3.7 기타 표준 I/O 71
3.7.1 버퍼링(buffering) / 72
3.7.2 이진 I/O / 73
3.7.3 개방된 화일의 특정 위치로 가기 / 74
3.7.4 임시 화일 / 74

Part 2

4장 UNIX 시스템 호출 78
4.1 저수준 I/O 78
4.1.1 화일 기술자(File descriptors) / 78
4.1.2 화일 입출력 - read와 write / 80
4.1.3 화일의 생성: open, creat, close, unlink / 84
4.1.4 임의 접근:lseek / 89
4.2 디렉토리(directory)의 처리 90
4.3 i-node(또는 inode) 92
4.4 프로세스 98
4.4.1 다른 프로그램으로의 변경:execlp와 execvp / 98
4.4.2 프로세스의 생성, 프로세스의 종료 기다리기:fork와 waitpid / 102
4.5 시그널 112
ⅵ4.6 비상탈출 기능 117


5장 프로그램의 개발 123
5.1 문맥자유문법(CFG)과 문맥민감문법(CSG) 123
5.2 가감승제 계산기 calc1 126
5.2.1 calc1의 문법 / 126
5.2.2 스캐너 yylex()의 작성 / 127
5.2.3 yacc의 입력함수의 작성 / 129
5.2.4 makefile을 이용한 컴파일 / 135
5.3 변수와 에러회복 능력을 갖춘 계산기 calc2 136
5.3.1 calc2.y의 구현 / 136
5.3.2 calc2의 동작 / 141
5.4 임의의 변수 명이 가능한 가감승제 계산기 calc3 143
5.4.1 헤더 file의 작성 / 143
5.4.2 심볼 테이블의 관리 / 144
5.4.3 calc3.y 의 작성 / 146
5.4.4 makefile을 이용한 calc3의 제작 / 151
5.5 가감승제 계산기 calc의 개선된 구현법:심볼 테이블 제작과 스캐너의 자동제작 152
5.5.1 심볼 테이블의 제작 / 152
5.5.2 스캐너의 자동 제작:lex의 사용법 / 159
5.5.3 최종 calc 프로그램의 작성 / 163
5.6 lex만을 이용한 프로그램 165
5.7 돌아보며 167

6장 기타 UNIX 시스템 호출 173
6.1 화일 I/O 173
6.1.1 /dev/fd의 사용 / 173
6.1.2 fcntl 함수 / 174
6.1.3 ioctl 함수 / 177
6.2 화일과 디렉토리 178
6.2.1 화일 접근 권한 / 178
6.2.2 set-user-ID와 set-group-ID / 179
6.2.3 access 함수 / 180
ⅶ6.2.4 umask 함수 / 181
6.2.5 chmod 함수 / 183
6.2.6 chown 함수 / 184
6.2.7 화일의 절단 : truncate / 185
6.2.8 화일시스템 / 185
6.2.9 링크와 심볼식 링크 / 187
6.2.10 chdir과 getcwd 함수 / 189
6.2.11 sync 함수 / 190
6.3 시스템 자료의 처리 190
6.3.1 패스워드 화일 / 191
6.3.2 그룹 화일 / 193
6.3.3 시스템 확인 / 194
6.3.4 시간과 날짜 / 195
6.3.5 기타 자료 화일들 / 196
6.4 프로세스 환경 197
6.4.1 main 함수 / 197
6.4.2 프로세스의 종료 / 198
6.4.3 C 프로그램의 메모리 배치 / 200
6.4.4 환경 변수 / 203
6.4.5 동적 메모리 배정:배열크기의 동적 변경 방법 / 205
6.4.6 setjmp와 longjmp / 207
6.5 시그널 210
6.5.1 기본적인 시그널 사용법 / 210
6.5.2 신뢰할 수 없는 시그널(Unreliable Signals) / 212
6.5.3 느린 시스템 호출(Slow System Calls) / 214
6.5.4 재진입 함수(Reentrant Functions) / 215
6.5.5 alarm과 sleep / 216
6.5.6 믿을 수 있는 시그널 / 218
6.5.7 추가적인 시그널 함수들 / 221
6.5.8 시그널 금지 영역의 해제 / 223
6.5.9 작업 제어 시그널 / 225
6.6 레코드 록킹(Record Locking) 226
6.6.1 fcntl 함수를 이용한 레코드 록킹 / 226
ⅷ6.6.2 충고식 록킹(Advisory locking)과 강제식 록킹(Mandatory Locking) 229
6.7 경주 조건(Race Conditions) / 230
6.8 I/O 멀티플렉싱(Multuplexing) / 233
6.9 메모리 사상 I/O(Memory Mapped I/O) 237
6.9.1 가상 메모리 / 237
6.9.2 mmap 함수 / 238
6.10 다중 쓰레딩(Multi-Threading) 242
6.10.1 쓰레드 사용법 / 242
6.10.2 다중 쓰레딩 환경에서 임계영역 문제 / 245

7장 프로세스 간의 통신(IPC) : 소켓 이용법 251
7.1 인터넷 모델과 계층 251
7.2 인터넷 주소 252
7.3 데이터그램 통신기법 256
7.3.1 데이터그램을 이용한 수신용 서버 프로그램 / 257
7.3.2 socket, bind, getsockname / 258
7.3.3 데이터그램을 이용한 송신용 클라이언트 프로그램 / 260
7.3.4 gethostbyname, bcopy, sendto / 261
7.4 스트림 통신기법 263
7.4.1 스트림 서버 버전 1 / 265
7.4.2 listen, accept, connect / 268
7.4.3 고객 프로그램 stclient / 269
7.4.4 스트림 서버의 개선 : 버전 2 / 271
7.4.5 select / 274
7.4.6 스트림 서버 버전 3 : 요청처리마다 새로운 아들 프로세스가 처리하는 버전 / 276
7.4.7 fork, waitpid / 279

Part 3

8장 어셈블리 언어와 어셈블러 284
8.1 시스템/370의 구조 284
ⅸ8.1.1 개요 / 285
8.1.2 바이트, 반 단어, 단어 및 2배 단어 / 287
8.1.3 명령어 이해를 위한 기본 사항 / 288
8.2 명령어의 포맷 289
8.2.1 RR 포맷 (레지스터-레지스터 포맷) / 290
8.2.2 RX 포맷 (레지스터-인덱스를 가진 기억장치 포맷) / 292
8.2.3 RS 포맷 (레지스터-기억장치 포맷) / 294
8.2.4 SI 포맷 (기억장치-즉시 포맷) / 295
8.2.5 SS 포맷 (기억장치-기억장치 포맷) / 296
8.3 분기 명령어 (Branch Instruction) 300
8.3.1 BC 및 BCR 명령어 / 300
8.3.2 BAL 및 BALR 명령어 / 301
8.4 예제 프로그램 및 그 이해 303
8.4.1 예제 프로그램 / 303
8.4.2 기계 연산과 의사 연산 / 304
8.4.3 인덱스 레지스터의 용도 : 순수 코드 / 305
8.4.4 리터럴(Literal)의 이용 / 306
8.5 어셈블러의 출력 형태 307
8.6 어셈블러가 사용하는 테이블 309
8.6.1 미리 준비된 테이블 : 기계연산 테이블과 의사연산 테이블 / 309
8.6.2 심볼 테이블과 리터럴 테이블 / 311
8.6.3 기준 테이블 / 311
8.7 어셈블러의 제작 313
8.8 기타 숙고할 사항 316
8.8.1 DC 및 DS 의 길이 표시에 심볼 사용 / 316
8.8.2 백-패칭 기법과 1-패스 어셈블러 / 319
8.9 단축 370 어셈블리 320
8.9.1 기계 연산(Machine Op) / 320
8.9.2 의사 연산(Pseudo-Op) / 322
8.9.3 단축 370 프로그램의 시뮬레이션 / 323\

9장 연결 및 적재(Linking and Loading) 333
ⅹ9.1 서론 333
9.2 적재기 (또는 로더; loader) 및 연결기 (linker) 334
9.2.1 적재기 / 334
9.2.2 연결기(linker) / 336
9.3 연결 편집기 (linkage editor) 339
9.3.1 객체 모듈 (object module) / 339
9.3.2 적재모듈 (load module) / 349
9.3.3 주소의 배정 및 주소 상수의 재배치 / 351
9.3.4 연결의 예제 / 353
9.3.5 연결 편집기의 다른 기능 / 354
9.3.6 단축 370 어셈블리용 연결기와의 비교 / 357
9.4 모듈 적재기(module loader) 358
9.4.1 모듈적재기의 동작 방식 / 358
9.4.2 예제를 통해 본 적재 과정 / 359
9.5 결론 361

10장 매크로 프로세서 367
10.1 매크로 프로세서의 개념 367
10.2 M6 매크로 프로세서 370
10.2.1 M6에서의 매크로 처리 / 372
10.2.2 M6의 구현 / 376
10.2.3 M6의 고급 기능 / 394
10.3 프로그래밍 프로젝트 401
10.3.1 기본 사양 / 401
10.3.2 주의사항 / 401
10.3.3 구현 / 402
10.3.4 추가 기능 / 402

부록 A UNIX 사용법 407
부록 B UNIX 에디터 vi의 사용법: 화일 prog1.c라 가정 410
xi 부록 C ftp(file transfer protocol)
찾아보기
0 0