1 / 32

9 장 리눅스 운영체제 및 시스템 프로그래밍

9 장 리눅스 운영체제 및 시스템 프로그래밍. 운영체제의 기능 운영체제의 발전 리눅스 운영체제의 개요 프로세스 관리 리눅스 프로세스 관리. 제 9 장 학습내용. 프로세서 관리 기억장치의 관리 리눅스 메모리 관리 리눅스 프로세스 동기화 프로그래밍 리눅스 파일 시스템 프로그래밍. 제 9 장 학습내용. 운영체제 (Operating System) 컴퓨터의 주 기억장치 내에 상주하면서 컴퓨터 하드웨어와 사용자 사이에서 인터페이스 역할을 해 주는 시스템 소프트웨어. 운영체제.

wyman
Download Presentation

9 장 리눅스 운영체제 및 시스템 프로그래밍

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 9장 리눅스 운영체제 및 시스템 프로그래밍

  2. 운영체제의 기능 운영체제의 발전 리눅스 운영체제의 개요 프로세스 관리 리눅스 프로세스 관리 제 9 장 학습내용

  3. 프로세서 관리 기억장치의 관리 리눅스 메모리 관리 리눅스 프로세스 동기화 프로그래밍 리눅스 파일 시스템 프로그래밍 제 9 장 학습내용

  4. 운영체제 (Operating System) 컴퓨터의 주 기억장치 내에 상주하면서 컴퓨터 하드웨어와 사용자 사이에서 인터페이스 역할을 해 주는 시스템 소프트웨어 운영체제

  5. 컴퓨터를 초기화 시켜 작업을 수행 할 수 있는 상태로 유지시키는 역할 컴퓨터 자원을 여러 사용자들이 나누어 쓸 수 있도록 자원을 관리 사용자가 하드웨어의 동작 원리를 알 필요 없이 기계를 사용할 수 있도록 편의성 제공 운영체제의 기능

  6. 단일 작업 시스템 - 한 번에 하나의 작업 처리 - 카드 판독기, 라인프린터 일괄 처리 시스템 - 다량의 처리 데이터를 모아서 일괄적으로 처리 입력 주 기억장치 프로세서 출력 입력배치 출력배치 운영체제의 발전(1)

  7. 다중 프로그래밍 - 여러 프로그램을 동시에 수행하는 기법 - 둘 이상의 프로그램이 시스템의 각 부분을 공유하거나 시차를 두고 나누어 쓰는 방법 입출력 요구와 할당 시간 초과 작업입력 프로세서 출력 운영체제의 발전(2)

  8. 스풀링 - 출력중인 작업에 프린터를 독점 - 현재 진행중인 작업의 수 만큼 프린터 설치 보조기억장치 운영체제 사용자 실제입력장치 논리적 입력장치 입력프로그램 READ 스풀링 프로그램 사용자작업 WRITE 논리적 출력장치 출력프로그램 실제출력장치 운영체제의 발전(3)

  9. 다중처리 - 둘 이상의 프로세서가 시스템을 구성하는 운영체제 주 프로세스 주 프로세스 공용 주 기억장치 버 스 입출력 프로세스 입출력버스 운영체제의 발전(4)

  10. 시분할 시스템 - 인터액티브, 대화형 시분할 프로세서 운영체제의 발전(5)

  11. 분산처리 시스템 - 컴퓨터 네트워크를 이용하는 운영체제 - 여러 컴퓨터들이 프로세서 사이의 데이터 링크를 통하여 교신하는 시스템 컴퓨터 A 컴퓨터 B 프로세서 주 기억장치 보조 기억장치 프로세서 주 기억장치 보조 기억장치 데이터 링크 운영체제의 발전(6)

  12. 가상 시스템 - 하나의 컴퓨터에 여러 개의 서로 다른 운영 체제를 동시에 수행하여 여러 개의 컴퓨터 시스템이 동작하는 것처럼 보이게 한다. 운영체제의 발전(7)

  13. 멀티태스킹, 멀티유저 GNU 소프트웨어 제공 X Window TCP/IP 네트워킹 오픈소스 가상 메모리와 공유 라이브러리 저사양에서도 강력한 성능 발휘 프로그램의 호환성이 떨어짐 리눅스의 특징

  14. 프로세스 다중 프로그래밍 처리의 기본 단위 운영체제 내에서 실행중인 연산과정, 프로그램 상태의 집합 프로세스 이미지 프로세스에 관한 정보를 보관하고 있는 기억 장소 프로세스의 상태 프로세스 관리

  15. 실행 : 현재 프로세스에 의하여 처리되고 있는 상태 대기 : 입출력 프로세스의 작업이 완료되기를 기다리는 상태 준비 : 프로세스의 배당을 기다리는 상태 프로세스 상태

  16. 여러 프로세스가 서로 아무런 영향을 주지 않고 병렬적으로 동시 수행되는 방법 시분할 시스템 및 다중 프로그래밍 시스템에서의 우선순위 처리에 중요한 개념 상호배제(mutual exclusion) 한 프로세스가 공용변수를 변경하고 있을 때는 다른 프로세스가 이들 공용변수를 사용하면 안된다. 위험지역(critical region) 프로그램에서 공용변수를 접근하는 부분 시스템 병렬성

  17. 프로세스 교신(process communication) 동기화 문제 해결 테스트와 세트(test and set) 세마포어(semaphore) 이벤트(event) 메시지(message) 프로세스의 동기화

  18. 둘 이상의 프로세스들이 서로 다른 프로세스가 차지하고 있는 자원을 요구하며 무한정 기다리게 되어 결국은 해당 프로세스들이 진행이 중단되는 현상 교착 상태

  19. 리눅스는 멀티 프로세싱 운영체제로서 개별 프로세스는 자신의 가상 주소 공간에서 실행 커널이 제공하는 안전한 방법을 통하지 않고서는 다른 프로세스와 상호작용을 할 수 없다. 리눅스 프로세스 관리

  20. 작업 스케쥴링 일괄 처리 시스템 – 작업 스케쥴러 시분할 시스템 – 명령 인터프리터 프로세스 스케쥴링 디스패처 준비 리스트에서 다음 수행될 프로세스 결정 선점형, 비선점형 프로세서 관리

  21. 스케쥴링 정책 스케쥴러에 포함된 일련의 선정 규칙 종류 FCFS : 먼저 도착한 대상을 먼저 처리하는 정책 라운드 로빈 : 각 프로세스에게 차례대로 일정한 배당시간 동안 프로세서를 차지하도록 하는 정책 우선순위 : 각 작업이나 프로세스에게 처리 우선순위를 정해서 스케쥴링 프로세서 관리

  22. 기억 장소 할당 수행 대상의 작업에게 주 기억장치의 공간을 배정 교체 시분할 시스템에서 주로 사용 한 작업이 프로세서에 의해 수행되지 않고 입출력 동작 중일 때 이 작업을 주 기억장치 로부터 보조기억장치로 내보내고 우선 순위가 높은 그 다음 작업으로 대체 기억장치의 관리

  23. 오버레이 작업 수행에 요구되는 총 기억장치의 용량이 사용 가능한 주 기억장치의 용량을 초과할 때 사용 세그먼테이션 어느 순간의 필요한 작업의 일부만을 주 기억 장치 내에 있도록 운영체제가 프로그램을 부분적으로 나누어 실행하는 기법 기억장치의 관리

  24. 페이징 다수의 병행적으로 실행되는 프로그램들 간에 제한된 양의 주 기억장치를 비연속적으로 관리 가상 기억장치 사용자로 하여금 보조 기억장치를 주 기억장치의 확장으로 간주하게 하여 기억용량의 제한을 없도록 하는 기법 기억장치의 관리

  25. 리눅스는 가상 기억장치를 지원 스왑 영역 가상 메모리로 쓰이는 하드디스크의 영역 스왑 파일 생성 $dd if=/dev/zeor of=/extra-swap bs=1024 count=1024 1024+0 records in 1024+0 records out $ 리눅스 메모리 관리

  26. 스왑 공간 사용하기 swapon 스왑 공간 초기화 커널에게 해당 공간을 스왑으로 사용할 수 있다는 점을 알려준다. free 스왑의 사용 상황 모니터 리눅스 메모리 관리

  27. 세마포어를 이용한 동기화 #include <semaphore.h> int sem_init(sem_t *sem,int pshared, unsigned int value); 뮤텍스를 이용한 동기화 #include <pthread.h> int prhread_mutex_init(prhread_mutex_t *mutex,const prhread_mutexattr_t *mutexattr); int prhread_mutex_lock(pthread_mutex_t *mutex); int prhread_mutex_unlock(pthread_mutex_t *mutex); int prhread_mutex_destroy(pthread_mutex_t *mutex); 리눅스 프로세스 동기화 프로그래밍

  28. chmod 파일이나 디렉토리에 대한 허용 권한 변경 #include<sys/stat.h> int chmod(const char *path, mode_t mode); 리눅스 파일 시스템 프로그래밍

  29. chown 파일의 소유자 변경 #include<unistd.h> int chown(const char *path, uid_t owner, gid_t group); 리눅스 파일 시스템 프로그래밍

  30. unlink : 파일제거 link : 새로운 링크 생성 symlink : 기호링크 생성 #include<unistd.h> int unlink(const char *path); int link(const char *path1, const char *path2); int symlink(const char *path1, const char *path2); 리눅스 파일 시스템 프로그래밍

  31. 운영체제의 기능 운영체제의 발전 리눅스 운영체제의 개요 프로세스 관리 리눅스 프로세스 관리 제 9 장 요약

  32. 프로세서 관리 기억장치의 관리 리눅스 메모리 관리 리눅스 프로세스 동기화 프로그래밍 리눅스 파일 시스템 프로그래밍 제 9 장 요약

More Related