SlideShare a Scribd company logo
1 of 24
운영체제 SIG
-OPERATING SYSTEM CONCEPTS-
        CHAPTER 2 운영체제 구조
   (OPERATING-SYSTEM STRUCTURE)
CHAPTER 2. 운영체제 구조
(OPERATING – SYSTEM STRUCTURE)

2.1  운영체제 서비스
2.2  사용자 운영체제 인터페이스(user operating system interface)
2.3  시스템 호출(system call)
2.4  시스템 호출의 유형
2.5  시스템 프로그래밍(system programing)
2.6  운영체제 설계 및 구현
     (operating system design and implementation)
2.7 운영체제 구조(operating system structure)
2.8 가상 기계(virtual machine)
2.9 운영 체제 생성(operating system generation)
2.10 시스템 부트
2.11 요약(summary)
CH2.1 운영체제 서비스

운영체제 : 프로그램 실행 환경을 제공  프로그래머에게 편리성 제공

•   사용자 인터페이스 (user interface)
•   프로그램 수행 (program execution)
•   입출력 연산 (I/O operation)
•   파일 시스템 조장 (file system manipulation)
•   통신 (communication)
•   오류탐지 (error detection)
•   자원할당 (resource allocation)
•   회계 (Accounting)
•   보호 (protection) 와 보안(security)
CH2.2 사용자 운영체제 인터페이스
(USER OPERATING-SYSTEM INTERFACE)

• 사용자의 운영체제 접근 방식
  • 명령어 라인 인터페이스
  • 명령어 해석기 (command interface)  GUI 형태
     • 한 시스템에서 다양한 형태의 명령어 해석기-셀(shell) 를 제공 가능
     • 사용자가 지정 명령을 가져와서 수행


• 명령어 해석기의 구현 방법
  • 해석기 자체가 명령을 실행할 코드를 가지고 있음
     • 새로운 명령어를 쉽게 추가 할 수 있다. (unix , linux…)
  • GUI(graphical user interface)
     • 사용자 친화적인 방식
     • 마우스 기반 시스템 (windows, mac OS …)
CH2.3 시스템 호출
(SYSTEM CALL)

• 시스템 호출 : 운영체제의 사용 가능한 서비스 인터페이스 제공
  • asm, C, C++, 기반으로 작성.

    연속된 시스템 호출의 예
입력 파일 이름 획득
 화면에 프롬프트 출력
 입력 받아 들임
출력파일 이름 획득
 화면에 프롬프트 출력
 입력 받아 들임
입력 파일 열기                       API:응용 프로그래밍 인터페이스
 파일이 존재하지 않을 경우, 비정상적 종료     (Application programming interface)
출력 파일 생성
 파일이 존재 할 경우, 비정상적 종료       응용프로그래머가 사용 가능한 함수 집합
루프
 입력파일로부터 읽어 들임
 출력 파일 에 씀
읽기가 실패할 때 까지
출력 파일 닫기
화면에 완료 메세지 출력
정상적인 종료
CH2.3 시스템 호출
(SYSTEM CALL)

• API vs System call
  • API: 보다 쉽고 간단하게 접근할 수 있도록 서비스 이용 방법을 정의한 함수
  • System call: 소프트웨어 인터럽트로 수행, 운영 체제의 특정 서비스를 요청
  • 일반적으로 시스템 콜을 직접 사용하는 것보다 API 사용
    • 사용하기 편해서… / 호환성의 문제


• 시스템 호출 인터페이스
  • API 함수의 호출을 가로채어 필요한 시스템 호출을 호출
  • 통상 각 시스템 호출에는 인덱스가 할당테이블 = 시스템 호출 인터페이스
  • 시스템 호출 을 부르고, 시스템 호출의 상태와 반환 값을 리턴
CH2.3 시스템 호출
(SYSTEM CALL)




                  System
                   Call
                interface
CH2.4 시스템 호출의 유형

• 시스템 호출의 유형
 • 프로세스 제어
  •   실행 중인 프로세스의 종료  끝내기(정상) / 중지(비정상)
  •   다중 프로그램 실행시의 서로간의 적재 / 실행
  •   프로세스 생성, 종료
  •   프로세스 속성(작업의 우선순위/시간) 획득, 프로세스 속성 결정
  •   작업 혹은 프로세스의 실행 종료 의 기다림
  •   Wait event / signal event
  •   병행프로세스들의 조정
  •   Time profile : 특정 프로그램의 특정 위치 혹은 수행한 시간의 양 (카운터)
       •   추적 실비 와 정규 타이머 인터럽트를 필요
  • 단일 태스킹 : 컴퓨터가 시동 시 하나의 명령어 해석기만 호출 (MS-DOS)
  • 다중 태스킹 : 사용자가 시스템에 로그인시 사용자가 선택한 셀이 선택(FreeBSD)
CH2.4 시스템 호출의 유형
CH2.4 시스템 호출의 유형

• 시스템 호출의 유형
 • 파일 조작
  •   파일 생성 / 삭제
  •   열기 / 닫기
  •   읽기 쓰기 / 위치 변경
  •   파일 속성 획득 및 설정
 • 장치 관리
  •   장치를 요청 / 방출
  •   읽기 쓰기 / 위치변경
  •   장치 속성 획득 / 장치 속성 설정
  •   장치의 논리적 부착 / 분리
 • 정보 유지
  • 시간과 날짜 설정
  • 시스템 자료ㅢ 설정 과 획득
  • 프로세스, 파일, 장치 속성의 획득 및 설정
 • 통신
  • 통신 연결의 생성, 제거
  • 메시지 송신, 수신
  • 상태 정보 전달 …
CH2.5 시스템 프로그램
(SYSTEM PROGRAM)

• 시스템 프로그램
  • 하드웨어  운영체제  시스템 프로그램  응용 프로그램
  • 프로그램 개발과 실행을 위해 편리한 환경을 제공
  • 시스템 프로그램의 범주
   • 파일관리
      •   파일과 디렉토리의 조작
   • 상태정보
      •   시스템의 정보(날짜, 시간, 사용가능한 메모리… 등)을 표시
   • 파일변경
      •   문장 편집기
   • 프로그래밍 언어 지원
      •   컴파일러, 어셈블러, 해석기 등등
   • 프로그램 적재와 수행
      •   절대 적재기, 재배치 가능 적재기, 링키지 에디터, 중첩 적재기
   • 통신
      •   프로세스, 사용자, 타 컴퓨터 사이의 가상 접속 기법
  • 시스템 유틸리티, 응용 프로그램 : 웹 브라우져, 워드프로세서 같은…
CH2.6 운영체제 설계 및 구현
(OPERATING-SYSTEM DESIGN AND IMPLEMENTATION)

• 운영체제 설계 목표
  • 사용자 목적 / 시스템 목적
  • 설계, 구현, 유지보수가 쉬우며, 적응성, 신뢰성, 무오류, 효율성 을 가져야 한다.
• 메커니즘 과 정책
  • 메커니즘 : 어떤 일을 어떻게 할 것 인가
  • 정책 : 무엇을 할 것 인가
   • ex) 중앙처리장치 보호 –
       •   ① 메커니즘: 타이머 구성
       •   ② 정책: 특정 사용자를 위한 타이머의 길이 설정

• 구현
  • 어셈블리어가 아닌 고급언어로 작성시…
   • 장점:신속한 작성,이해도가 높음,이식성이 높음
   • 단점:속도가 느리며, 기억장치를 많이 소모
  • 시스템의 성능은 알고리즘과 자료구조에 영향을 받음
  • 병목 현상 식별
   • 시스템 동작 추적 리스트 작성모의실험(실시간 성능 측정)
CH2.7 운영체제 구조
(OPERATING-SYSTEM STRUCTURE)

• 간단한 구조(simple structure)
  • MS-DOS
    •   모듈들이 제대로 분할되어 있지 않음
    •   응용 프로그램이 기본적으로 하드웨어에 접근할 수 있음
  • 초기 UNIX
        • 구성: 커널과 시스템 프로그램의 두 부분
        • 커널: 시스템 호출 인터페이스 아래 부분과 물리적 하드웨어 위 부분
                  → 수많은 기능들이 하나의 계층으로 결합되어 있음
        • UNIX의 발전 방향: 커널의 분할 및 축소
CH2.7 운영체제 구조
(OPERATING-SYSTEM STRUCTURE)

• 계층적 접근(Layered Approach)
  • 운영체제를 다수의 계층으로 구분하여 모듈화 하는 방법
   • 최하위 계층(layer 0): 하드웨어 ↔ 최상위 계층(layer N): 사용자 인터페이스
   • 계층의 구현:
      •   추상적인 객체: 자료의 캡슐화와 그러한 자료를 처리할 수 있는 연산으로 구성
      •   모듈화(modularity): 각 계층은 자신 및 하위 계층에서 제공하는 함수(연산)들만을 사용
              → 시스템의 설계나 구현이 간단해짐
CH2.7 운영체제 구조
(OPERATING-SYSTEM STRUCTURE)

• 계층적 접근(Layered Approach)
  • 계층적 설계의 문제점
   • 계층 정의의 어려움
   • 낮은 효율성모듈화의 장점을 유지하면서 계층화의 단점을 줄이기 위해, 적은 계층으로
             설계하는 방안 등장
CH2.7 운영체제 구조
(OPERATING-SYSTEM STRUCTURE)

• 마이크로커널(micro kernel)
  •   커널을 모듈화
  •   중요하지 않은 모든 구성 요소를 커널에서 제거
  •   시스템 및 사용자 수준 프로그램으로 구현
  •   클라이언트 프로그램
  •   사용자 공간에서 수행되는 다양한 서비스간 통신 설비 제공 목적
  •   장점 : 운영체제의 확장이 용이
  •   한 하드웨어에서 다른 하드웨어로서의 이식이 쉽다.
  •   단점 : 가증된 시스템 기능 오버헤드 때문에 성능이 감소된다.
CH2.7 운영체제 구조
(OPERATING-SYSTEM STRUCTURE)

• 모듈(module)
  • 객체지향적 프로그래밍을 이용한 모듈화 운영체제
  • 커널은 핵심 적인 구성요소만 포함 부팅 또는 실행 중엔 부가적인 서비스만 링크
  • 동적 적재 모듈 사용핵심적인 기능 사용 + 특정 기능들을 동적으로 사용
CH2.8 가상 기계
(VIRTUAL MACHINE)
• 가상 기계: 각 프로세스에게 기본 컴퓨터의 가상적인 사본 제공.
• 가상 기계 소프트웨어: 여러 개의 가상 기계를 하나의 물리적 기계에 다중 프로그래밍 함
• H/W 측면: 실제 컴퓨터 자원들은 가상 기계를 만들기 위해 공유됨
  1) 중앙처리장치 스케줄링: 가상의 전용 처리기 제공
  2) 가상기억장치 기법: 가상의 전용 기억장치 제공
  3) 스풀링과 파일 시스템: 가상의 카드 판독기, 가상의 라인 프린터 제공
  4) 시분할 터미널: 가상의 전용 콘솔 제공
  5) 소형 디스크(minidisk): 물리적 디스크에서 필요한 트랙을 할당하여 가상의 디스크 제공
• OS 측면: 사용자는 주어진 가상기계 위에 단일 사용자 대화형 운영체제 CMS를 수행
CH2.8 가상 기계
(VIRTUAL MACHINE)
CH2.8 가상 기계
(VIRTUAL MACHINE)
• 장점

1) 시스템 자원의 완전한 보호: 각 가상 기계는 다른 모든 가상 기계로부터 완전히 분리되어 보
안의 문제가 없으나, 반면 자원을 직접 공유할 수 없음
      → (공유 방법)  ① 소형 디스크 공유
                 ② 가상 기계의 통신 네트워크 정의

2) 가상 기계 시스템은 운영체제 연구와 개발에 완벽한 매체로서 사용될 수 있음
      → 시스템 개발 시간에도 정규 시스템 동작을 중단할 필요 없음

3) 가상기계는 시스템 호환성 문제를 해결하는 수단으로 사용됨
      → 선 마이크로시스템(Sun Microsystems)과 DEC(Digital Equipment Corporation)
등의 컴퓨터에 가상 인텔 기계를 두어 MS-DOS용 프로그램을 실행 시 킬 수 있음
CH2.8 가상 기계
(VIRTUAL MACHINE)
• 자바(Java): 선 마이크로시스템사에서 설계한 프로그래밍 언어
→ 자바 언어에 의해 작성된 자바 프로그램은 자바 컴파일러에 의해 자바 가상 기계(JVM)에서
실행될 수 있는 바이트코드(bytecode)를 생성함

• 자바 가상 기계(JVM)
- 여러 종류의 범용 운영체제 컴퓨터에서 실행됨
ex) IBM 호환 PC, 매킨토시, Unix 워크스테이션 및 서버, IBM 소형 및 대형 컴퓨터 등
- 웹 브라우저에서도 실행됨
ex) 마이크로소프트 익스플로러, 넷스케이프 커뮤니케이터 등
- 하드웨어 상에서 직접 자바를 수행하는 작은 크기의 JavaOS에서 실행됨
ex) 무선전화기 등

• 자바 가상 기계는 산술, 논리, 데이터 이동, 흐름 제어 명령을 포함하는 스택 기반 명령어 세
  트를 실현하며, 하드웨어에 구축하기에 복잡한 객체 생성, 조작, 메소드 호출 명령 등을 실
  현할 수 있음

• 자바의 설계는 가상 기계를 구현하는 완벽한 환경을 제공함
→ 바이트 코드는 기반이 되는 기계의 보안과 신뢰성을 위협하는 명령인지 검사된 후 만족되지
않으면 수행되지 않음
CH2.8 가상 기계
(VIRTUAL MACHINE)
CH2.9 운영체제 생성
(OPERATING SYSTEM GENERATION)
• 시스템 생성(SYSGEN): 범용 운영체제가 특정 컴퓨터를 위해 구성되고 생성되는 것
• SYSGEN 프로그램: 하드웨어 시스템의 특정 구성에 관한 정보를 운영자에게 요구하거나
  파일로부터 판독함

     - 사용하는 중앙처리장치의 종류
     - 사용 가능한 기억장치의 크기
     - 사용 가능한 주변장치의 종류
     - 요구하는 운영체제의 종류 등
CH2.10시스템 부트

• 부트스트랩 프로그램(bootstrap program)/부트스트랩 적재기(bootstrap loader):
     운영체제의 위치를 파악하여 기억장치에 적재하고 실행시키는 프로그램
          → ROM에 저장되어 있음
• 부트프로그램  기계 상태 진단 시스템 전체 초기화  운영체제 시작

• 운영체제 전체를 ROM에 저장하는 형식 : 부트스트랩 코드 변경시 ROM 칩을 교체해야함
 EPROM(쓰기도 가능하도록 만드는 명령어가 주어지기 전까지는 읽기 전용을 유지함)
 하드웨어와 소프트웨어의 중간적인 특정 : ROM 에 담긴 형태를 Firmware 라고 함.

 부트 블록 : 대용량 운영체제 또는 자주 변경되는 시스템부트스트랩은 펌웨어로
         운영체제는 디스크에 존재  진단이 끝나고 운영체제를 시작하기 위한
         디스크의 고정된 위치

 부트 디스크 : 디스크 상의 부트스트랩과 운영체제의 새 버전을 디스크에 기록
           부트 파티션을 가지고 있는 디스크

More Related Content

What's hot

프로그래머가 알아야 하는 메모리 관리 기법
프로그래머가 알아야 하는 메모리 관리 기법프로그래머가 알아야 하는 메모리 관리 기법
프로그래머가 알아야 하는 메모리 관리 기법중선 곽
 
컴퓨터 구조 분야의 8가지 아이디어
컴퓨터 구조 분야의 8가지 아이디어컴퓨터 구조 분야의 8가지 아이디어
컴퓨터 구조 분야의 8가지 아이디어usdrd90
 
One click recovery_application-특허_및_제품_조사
One click recovery_application-특허_및_제품_조사One click recovery_application-특허_및_제품_조사
One click recovery_application-특허_및_제품_조사호상 장
 
코딩인카페 C&JAVA 기초과정 컴퓨터와 프로그래밍 소개(2)
코딩인카페 C&JAVA 기초과정 컴퓨터와 프로그래밍 소개(2)코딩인카페 C&JAVA 기초과정 컴퓨터와 프로그래밍 소개(2)
코딩인카페 C&JAVA 기초과정 컴퓨터와 프로그래밍 소개(2)유익아카데미
 
TestBCD2014-1(Answer)
TestBCD2014-1(Answer)TestBCD2014-1(Answer)
TestBCD2014-1(Answer)Yong Heui Cho
 
Mint64 os개발이야기 한승훈
Mint64 os개발이야기 한승훈Mint64 os개발이야기 한승훈
Mint64 os개발이야기 한승훈Seunghun han
 
[OS] Operating System 5 layer
[OS] Operating System 5 layer[OS] Operating System 5 layer
[OS] Operating System 5 layerssuserb2b4e71
 
20150502 unix v6로 배우는 커널의 원리와 구조 1 김지은
20150502 unix v6로 배우는 커널의 원리와 구조 1 김지은20150502 unix v6로 배우는 커널의 원리와 구조 1 김지은
20150502 unix v6로 배우는 커널의 원리와 구조 1 김지은jieun kim
 
컴퓨터공학 스터디 W3 발표: 컴퓨터 구조
컴퓨터공학 스터디 W3 발표: 컴퓨터 구조컴퓨터공학 스터디 W3 발표: 컴퓨터 구조
컴퓨터공학 스터디 W3 발표: 컴퓨터 구조ssuser91b87c
 
노태상 - 리눅스 커널 개요 및 이슈 아이엠 (2010Y01M30D)
노태상 - 리눅스 커널 개요 및 이슈 아이엠 (2010Y01M30D)노태상 - 리눅스 커널 개요 및 이슈 아이엠 (2010Y01M30D)
노태상 - 리눅스 커널 개요 및 이슈 아이엠 (2010Y01M30D)Ubuntu Korea Community
 
Linux Kernel Boot Process , SOSCON 2015, By Mario Cho
Linux Kernel Boot Process , SOSCON 2015, By Mario ChoLinux Kernel Boot Process , SOSCON 2015, By Mario Cho
Linux Kernel Boot Process , SOSCON 2015, By Mario ChoMario Cho
 
망고100 보드로 놀아보자 5
망고100 보드로 놀아보자 5망고100 보드로 놀아보자 5
망고100 보드로 놀아보자 5종인 전
 
리눅스커널-디바이스드라이버_모듈_프로그래밍
리눅스커널-디바이스드라이버_모듈_프로그래밍리눅스커널-디바이스드라이버_모듈_프로그래밍
리눅스커널-디바이스드라이버_모듈_프로그래밍Yunsu Lee
 
Introduction to Linux #1
Introduction to Linux #1Introduction to Linux #1
Introduction to Linux #1UNIST
 

What's hot (14)

프로그래머가 알아야 하는 메모리 관리 기법
프로그래머가 알아야 하는 메모리 관리 기법프로그래머가 알아야 하는 메모리 관리 기법
프로그래머가 알아야 하는 메모리 관리 기법
 
컴퓨터 구조 분야의 8가지 아이디어
컴퓨터 구조 분야의 8가지 아이디어컴퓨터 구조 분야의 8가지 아이디어
컴퓨터 구조 분야의 8가지 아이디어
 
One click recovery_application-특허_및_제품_조사
One click recovery_application-특허_및_제품_조사One click recovery_application-특허_및_제품_조사
One click recovery_application-특허_및_제품_조사
 
코딩인카페 C&JAVA 기초과정 컴퓨터와 프로그래밍 소개(2)
코딩인카페 C&JAVA 기초과정 컴퓨터와 프로그래밍 소개(2)코딩인카페 C&JAVA 기초과정 컴퓨터와 프로그래밍 소개(2)
코딩인카페 C&JAVA 기초과정 컴퓨터와 프로그래밍 소개(2)
 
TestBCD2014-1(Answer)
TestBCD2014-1(Answer)TestBCD2014-1(Answer)
TestBCD2014-1(Answer)
 
Mint64 os개발이야기 한승훈
Mint64 os개발이야기 한승훈Mint64 os개발이야기 한승훈
Mint64 os개발이야기 한승훈
 
[OS] Operating System 5 layer
[OS] Operating System 5 layer[OS] Operating System 5 layer
[OS] Operating System 5 layer
 
20150502 unix v6로 배우는 커널의 원리와 구조 1 김지은
20150502 unix v6로 배우는 커널의 원리와 구조 1 김지은20150502 unix v6로 배우는 커널의 원리와 구조 1 김지은
20150502 unix v6로 배우는 커널의 원리와 구조 1 김지은
 
컴퓨터공학 스터디 W3 발표: 컴퓨터 구조
컴퓨터공학 스터디 W3 발표: 컴퓨터 구조컴퓨터공학 스터디 W3 발표: 컴퓨터 구조
컴퓨터공학 스터디 W3 발표: 컴퓨터 구조
 
노태상 - 리눅스 커널 개요 및 이슈 아이엠 (2010Y01M30D)
노태상 - 리눅스 커널 개요 및 이슈 아이엠 (2010Y01M30D)노태상 - 리눅스 커널 개요 및 이슈 아이엠 (2010Y01M30D)
노태상 - 리눅스 커널 개요 및 이슈 아이엠 (2010Y01M30D)
 
Linux Kernel Boot Process , SOSCON 2015, By Mario Cho
Linux Kernel Boot Process , SOSCON 2015, By Mario ChoLinux Kernel Boot Process , SOSCON 2015, By Mario Cho
Linux Kernel Boot Process , SOSCON 2015, By Mario Cho
 
망고100 보드로 놀아보자 5
망고100 보드로 놀아보자 5망고100 보드로 놀아보자 5
망고100 보드로 놀아보자 5
 
리눅스커널-디바이스드라이버_모듈_프로그래밍
리눅스커널-디바이스드라이버_모듈_프로그래밍리눅스커널-디바이스드라이버_모듈_프로그래밍
리눅스커널-디바이스드라이버_모듈_프로그래밍
 
Introduction to Linux #1
Introduction to Linux #1Introduction to Linux #1
Introduction to Linux #1
 

Similar to 운영체제 Sig2

윈도우 커널 익스플로잇
윈도우 커널 익스플로잇윈도우 커널 익스플로잇
윈도우 커널 익스플로잇Seungyong Lee
 
33기 여채린 "리눅스에 대한 소개"
33기 여채린 "리눅스에 대한 소개"33기 여채린 "리눅스에 대한 소개"
33기 여채린 "리눅스에 대한 소개"hyu_jaram
 
안드로이드 플랫폼 설명
안드로이드 플랫폼 설명안드로이드 플랫폼 설명
안드로이드 플랫폼 설명Peter YoungSik Yun
 
150625 마이크로커널 운영체제 김지은
150625 마이크로커널 운영체제 김지은150625 마이크로커널 운영체제 김지은
150625 마이크로커널 운영체제 김지은jieun kim
 
Why OpenStack is Operating System?
Why OpenStack is Operating System?Why OpenStack is Operating System?
Why OpenStack is Operating System?유명환 FunFun Yoo
 
2. windows system과 file format
2. windows system과 file format2. windows system과 file format
2. windows system과 file formatYoungjun Chang
 
임베디드시스템개발 Part2
임베디드시스템개발 Part2임베디드시스템개발 Part2
임베디드시스템개발 Part2Minsuk Lee
 
System Infra와 Recovery 그리고 DevOps
System Infra와 Recovery 그리고 DevOpsSystem Infra와 Recovery 그리고 DevOps
System Infra와 Recovery 그리고 DevOpsJuseok Kim
 
(Red hat) Ansible Overview-samuel-2018-0911(printed)
(Red hat) Ansible Overview-samuel-2018-0911(printed)(Red hat) Ansible Overview-samuel-2018-0911(printed)
(Red hat) Ansible Overview-samuel-2018-0911(printed)SAMUEL SJ Cheon
 
작품요약서 이영식
작품요약서 이영식작품요약서 이영식
작품요약서 이영식Yeongsik
 
171220 웹프로그래밍 web app 토렌트 관리체계
171220 웹프로그래밍 web app 토렌트 관리체계171220 웹프로그래밍 web app 토렌트 관리체계
171220 웹프로그래밍 web app 토렌트 관리체계우진 신
 
Oracle linux8 solaris_new_features-suk kim
Oracle linux8 solaris_new_features-suk kimOracle linux8 solaris_new_features-suk kim
Oracle linux8 solaris_new_features-suk kimsuk kim
 
DeskAlerts 다목적기업커뮤니케이션솔루션 v8.0 r3
DeskAlerts 다목적기업커뮤니케이션솔루션 v8.0 r3DeskAlerts 다목적기업커뮤니케이션솔루션 v8.0 r3
DeskAlerts 다목적기업커뮤니케이션솔루션 v8.0 r3Jucheol Kim
 
[오픈소스컨설팅]유닉스의 리눅스 마이그레이션 전략_v3
[오픈소스컨설팅]유닉스의 리눅스 마이그레이션 전략_v3[오픈소스컨설팅]유닉스의 리눅스 마이그레이션 전략_v3
[오픈소스컨설팅]유닉스의 리눅스 마이그레이션 전략_v3Ji-Woong Choi
 
젠킨스 설치 및 설정
젠킨스 설치 및 설정젠킨스 설치 및 설정
젠킨스 설치 및 설정중선 곽
 
Linux 강의자료 ed10
Linux 강의자료 ed10Linux 강의자료 ed10
Linux 강의자료 ed10hungrok
 
Intro to hpe helion stackato_paa_s
Intro to hpe helion stackato_paa_sIntro to hpe helion stackato_paa_s
Intro to hpe helion stackato_paa_sSeong-Bok Lee
 
클라우드 환경에서 알아야할 성능 이야기
클라우드 환경에서 알아야할 성능 이야기클라우드 환경에서 알아야할 성능 이야기
클라우드 환경에서 알아야할 성능 이야기YoungSu Son
 
[오픈소스컨설팅]클라우드자동화 및 운영효율화방안
[오픈소스컨설팅]클라우드자동화 및 운영효율화방안[오픈소스컨설팅]클라우드자동화 및 운영효율화방안
[오픈소스컨설팅]클라우드자동화 및 운영효율화방안Ji-Woong Choi
 

Similar to 운영체제 Sig2 (20)

윈도우 커널 익스플로잇
윈도우 커널 익스플로잇윈도우 커널 익스플로잇
윈도우 커널 익스플로잇
 
33기 여채린 "리눅스에 대한 소개"
33기 여채린 "리눅스에 대한 소개"33기 여채린 "리눅스에 대한 소개"
33기 여채린 "리눅스에 대한 소개"
 
안드로이드 플랫폼 설명
안드로이드 플랫폼 설명안드로이드 플랫폼 설명
안드로이드 플랫폼 설명
 
150625 마이크로커널 운영체제 김지은
150625 마이크로커널 운영체제 김지은150625 마이크로커널 운영체제 김지은
150625 마이크로커널 운영체제 김지은
 
Why OpenStack is Operating System?
Why OpenStack is Operating System?Why OpenStack is Operating System?
Why OpenStack is Operating System?
 
2. windows system과 file format
2. windows system과 file format2. windows system과 file format
2. windows system과 file format
 
임베디드시스템개발 Part2
임베디드시스템개발 Part2임베디드시스템개발 Part2
임베디드시스템개발 Part2
 
System Infra와 Recovery 그리고 DevOps
System Infra와 Recovery 그리고 DevOpsSystem Infra와 Recovery 그리고 DevOps
System Infra와 Recovery 그리고 DevOps
 
04 프로세스
04 프로세스04 프로세스
04 프로세스
 
(Red hat) Ansible Overview-samuel-2018-0911(printed)
(Red hat) Ansible Overview-samuel-2018-0911(printed)(Red hat) Ansible Overview-samuel-2018-0911(printed)
(Red hat) Ansible Overview-samuel-2018-0911(printed)
 
작품요약서 이영식
작품요약서 이영식작품요약서 이영식
작품요약서 이영식
 
171220 웹프로그래밍 web app 토렌트 관리체계
171220 웹프로그래밍 web app 토렌트 관리체계171220 웹프로그래밍 web app 토렌트 관리체계
171220 웹프로그래밍 web app 토렌트 관리체계
 
Oracle linux8 solaris_new_features-suk kim
Oracle linux8 solaris_new_features-suk kimOracle linux8 solaris_new_features-suk kim
Oracle linux8 solaris_new_features-suk kim
 
DeskAlerts 다목적기업커뮤니케이션솔루션 v8.0 r3
DeskAlerts 다목적기업커뮤니케이션솔루션 v8.0 r3DeskAlerts 다목적기업커뮤니케이션솔루션 v8.0 r3
DeskAlerts 다목적기업커뮤니케이션솔루션 v8.0 r3
 
[오픈소스컨설팅]유닉스의 리눅스 마이그레이션 전략_v3
[오픈소스컨설팅]유닉스의 리눅스 마이그레이션 전략_v3[오픈소스컨설팅]유닉스의 리눅스 마이그레이션 전략_v3
[오픈소스컨설팅]유닉스의 리눅스 마이그레이션 전략_v3
 
젠킨스 설치 및 설정
젠킨스 설치 및 설정젠킨스 설치 및 설정
젠킨스 설치 및 설정
 
Linux 강의자료 ed10
Linux 강의자료 ed10Linux 강의자료 ed10
Linux 강의자료 ed10
 
Intro to hpe helion stackato_paa_s
Intro to hpe helion stackato_paa_sIntro to hpe helion stackato_paa_s
Intro to hpe helion stackato_paa_s
 
클라우드 환경에서 알아야할 성능 이야기
클라우드 환경에서 알아야할 성능 이야기클라우드 환경에서 알아야할 성능 이야기
클라우드 환경에서 알아야할 성능 이야기
 
[오픈소스컨설팅]클라우드자동화 및 운영효율화방안
[오픈소스컨설팅]클라우드자동화 및 운영효율화방안[오픈소스컨설팅]클라우드자동화 및 운영효율화방안
[오픈소스컨설팅]클라우드자동화 및 운영효율화방안
 

운영체제 Sig2

  • 1. 운영체제 SIG -OPERATING SYSTEM CONCEPTS- CHAPTER 2 운영체제 구조 (OPERATING-SYSTEM STRUCTURE)
  • 2. CHAPTER 2. 운영체제 구조 (OPERATING – SYSTEM STRUCTURE) 2.1 운영체제 서비스 2.2 사용자 운영체제 인터페이스(user operating system interface) 2.3 시스템 호출(system call) 2.4 시스템 호출의 유형 2.5 시스템 프로그래밍(system programing) 2.6 운영체제 설계 및 구현 (operating system design and implementation) 2.7 운영체제 구조(operating system structure) 2.8 가상 기계(virtual machine) 2.9 운영 체제 생성(operating system generation) 2.10 시스템 부트 2.11 요약(summary)
  • 3. CH2.1 운영체제 서비스 운영체제 : 프로그램 실행 환경을 제공  프로그래머에게 편리성 제공 • 사용자 인터페이스 (user interface) • 프로그램 수행 (program execution) • 입출력 연산 (I/O operation) • 파일 시스템 조장 (file system manipulation) • 통신 (communication) • 오류탐지 (error detection) • 자원할당 (resource allocation) • 회계 (Accounting) • 보호 (protection) 와 보안(security)
  • 4. CH2.2 사용자 운영체제 인터페이스 (USER OPERATING-SYSTEM INTERFACE) • 사용자의 운영체제 접근 방식 • 명령어 라인 인터페이스 • 명령어 해석기 (command interface)  GUI 형태 • 한 시스템에서 다양한 형태의 명령어 해석기-셀(shell) 를 제공 가능 • 사용자가 지정 명령을 가져와서 수행 • 명령어 해석기의 구현 방법 • 해석기 자체가 명령을 실행할 코드를 가지고 있음 • 새로운 명령어를 쉽게 추가 할 수 있다. (unix , linux…) • GUI(graphical user interface) • 사용자 친화적인 방식 • 마우스 기반 시스템 (windows, mac OS …)
  • 5. CH2.3 시스템 호출 (SYSTEM CALL) • 시스템 호출 : 운영체제의 사용 가능한 서비스 인터페이스 제공 • asm, C, C++, 기반으로 작성. 연속된 시스템 호출의 예 입력 파일 이름 획득 화면에 프롬프트 출력 입력 받아 들임 출력파일 이름 획득 화면에 프롬프트 출력 입력 받아 들임 입력 파일 열기 API:응용 프로그래밍 인터페이스 파일이 존재하지 않을 경우, 비정상적 종료 (Application programming interface) 출력 파일 생성 파일이 존재 할 경우, 비정상적 종료 응용프로그래머가 사용 가능한 함수 집합 루프 입력파일로부터 읽어 들임 출력 파일 에 씀 읽기가 실패할 때 까지 출력 파일 닫기 화면에 완료 메세지 출력 정상적인 종료
  • 6. CH2.3 시스템 호출 (SYSTEM CALL) • API vs System call • API: 보다 쉽고 간단하게 접근할 수 있도록 서비스 이용 방법을 정의한 함수 • System call: 소프트웨어 인터럽트로 수행, 운영 체제의 특정 서비스를 요청 • 일반적으로 시스템 콜을 직접 사용하는 것보다 API 사용 • 사용하기 편해서… / 호환성의 문제 • 시스템 호출 인터페이스 • API 함수의 호출을 가로채어 필요한 시스템 호출을 호출 • 통상 각 시스템 호출에는 인덱스가 할당테이블 = 시스템 호출 인터페이스 • 시스템 호출 을 부르고, 시스템 호출의 상태와 반환 값을 리턴
  • 7. CH2.3 시스템 호출 (SYSTEM CALL) System Call interface
  • 8. CH2.4 시스템 호출의 유형 • 시스템 호출의 유형 • 프로세스 제어 • 실행 중인 프로세스의 종료  끝내기(정상) / 중지(비정상) • 다중 프로그램 실행시의 서로간의 적재 / 실행 • 프로세스 생성, 종료 • 프로세스 속성(작업의 우선순위/시간) 획득, 프로세스 속성 결정 • 작업 혹은 프로세스의 실행 종료 의 기다림 • Wait event / signal event • 병행프로세스들의 조정 • Time profile : 특정 프로그램의 특정 위치 혹은 수행한 시간의 양 (카운터) • 추적 실비 와 정규 타이머 인터럽트를 필요 • 단일 태스킹 : 컴퓨터가 시동 시 하나의 명령어 해석기만 호출 (MS-DOS) • 다중 태스킹 : 사용자가 시스템에 로그인시 사용자가 선택한 셀이 선택(FreeBSD)
  • 10. CH2.4 시스템 호출의 유형 • 시스템 호출의 유형 • 파일 조작 • 파일 생성 / 삭제 • 열기 / 닫기 • 읽기 쓰기 / 위치 변경 • 파일 속성 획득 및 설정 • 장치 관리 • 장치를 요청 / 방출 • 읽기 쓰기 / 위치변경 • 장치 속성 획득 / 장치 속성 설정 • 장치의 논리적 부착 / 분리 • 정보 유지 • 시간과 날짜 설정 • 시스템 자료ㅢ 설정 과 획득 • 프로세스, 파일, 장치 속성의 획득 및 설정 • 통신 • 통신 연결의 생성, 제거 • 메시지 송신, 수신 • 상태 정보 전달 …
  • 11. CH2.5 시스템 프로그램 (SYSTEM PROGRAM) • 시스템 프로그램 • 하드웨어  운영체제  시스템 프로그램  응용 프로그램 • 프로그램 개발과 실행을 위해 편리한 환경을 제공 • 시스템 프로그램의 범주 • 파일관리 • 파일과 디렉토리의 조작 • 상태정보 • 시스템의 정보(날짜, 시간, 사용가능한 메모리… 등)을 표시 • 파일변경 • 문장 편집기 • 프로그래밍 언어 지원 • 컴파일러, 어셈블러, 해석기 등등 • 프로그램 적재와 수행 • 절대 적재기, 재배치 가능 적재기, 링키지 에디터, 중첩 적재기 • 통신 • 프로세스, 사용자, 타 컴퓨터 사이의 가상 접속 기법 • 시스템 유틸리티, 응용 프로그램 : 웹 브라우져, 워드프로세서 같은…
  • 12. CH2.6 운영체제 설계 및 구현 (OPERATING-SYSTEM DESIGN AND IMPLEMENTATION) • 운영체제 설계 목표 • 사용자 목적 / 시스템 목적 • 설계, 구현, 유지보수가 쉬우며, 적응성, 신뢰성, 무오류, 효율성 을 가져야 한다. • 메커니즘 과 정책 • 메커니즘 : 어떤 일을 어떻게 할 것 인가 • 정책 : 무엇을 할 것 인가 • ex) 중앙처리장치 보호 – • ① 메커니즘: 타이머 구성 • ② 정책: 특정 사용자를 위한 타이머의 길이 설정 • 구현 • 어셈블리어가 아닌 고급언어로 작성시… • 장점:신속한 작성,이해도가 높음,이식성이 높음 • 단점:속도가 느리며, 기억장치를 많이 소모 • 시스템의 성능은 알고리즘과 자료구조에 영향을 받음 • 병목 현상 식별 • 시스템 동작 추적 리스트 작성모의실험(실시간 성능 측정)
  • 13. CH2.7 운영체제 구조 (OPERATING-SYSTEM STRUCTURE) • 간단한 구조(simple structure) • MS-DOS • 모듈들이 제대로 분할되어 있지 않음 • 응용 프로그램이 기본적으로 하드웨어에 접근할 수 있음 • 초기 UNIX • 구성: 커널과 시스템 프로그램의 두 부분 • 커널: 시스템 호출 인터페이스 아래 부분과 물리적 하드웨어 위 부분 → 수많은 기능들이 하나의 계층으로 결합되어 있음 • UNIX의 발전 방향: 커널의 분할 및 축소
  • 14. CH2.7 운영체제 구조 (OPERATING-SYSTEM STRUCTURE) • 계층적 접근(Layered Approach) • 운영체제를 다수의 계층으로 구분하여 모듈화 하는 방법 • 최하위 계층(layer 0): 하드웨어 ↔ 최상위 계층(layer N): 사용자 인터페이스 • 계층의 구현: • 추상적인 객체: 자료의 캡슐화와 그러한 자료를 처리할 수 있는 연산으로 구성 • 모듈화(modularity): 각 계층은 자신 및 하위 계층에서 제공하는 함수(연산)들만을 사용 → 시스템의 설계나 구현이 간단해짐
  • 15. CH2.7 운영체제 구조 (OPERATING-SYSTEM STRUCTURE) • 계층적 접근(Layered Approach) • 계층적 설계의 문제점 • 계층 정의의 어려움 • 낮은 효율성모듈화의 장점을 유지하면서 계층화의 단점을 줄이기 위해, 적은 계층으로 설계하는 방안 등장
  • 16. CH2.7 운영체제 구조 (OPERATING-SYSTEM STRUCTURE) • 마이크로커널(micro kernel) • 커널을 모듈화 • 중요하지 않은 모든 구성 요소를 커널에서 제거 • 시스템 및 사용자 수준 프로그램으로 구현 • 클라이언트 프로그램 • 사용자 공간에서 수행되는 다양한 서비스간 통신 설비 제공 목적 • 장점 : 운영체제의 확장이 용이 • 한 하드웨어에서 다른 하드웨어로서의 이식이 쉽다. • 단점 : 가증된 시스템 기능 오버헤드 때문에 성능이 감소된다.
  • 17. CH2.7 운영체제 구조 (OPERATING-SYSTEM STRUCTURE) • 모듈(module) • 객체지향적 프로그래밍을 이용한 모듈화 운영체제 • 커널은 핵심 적인 구성요소만 포함 부팅 또는 실행 중엔 부가적인 서비스만 링크 • 동적 적재 모듈 사용핵심적인 기능 사용 + 특정 기능들을 동적으로 사용
  • 18. CH2.8 가상 기계 (VIRTUAL MACHINE) • 가상 기계: 각 프로세스에게 기본 컴퓨터의 가상적인 사본 제공. • 가상 기계 소프트웨어: 여러 개의 가상 기계를 하나의 물리적 기계에 다중 프로그래밍 함 • H/W 측면: 실제 컴퓨터 자원들은 가상 기계를 만들기 위해 공유됨 1) 중앙처리장치 스케줄링: 가상의 전용 처리기 제공 2) 가상기억장치 기법: 가상의 전용 기억장치 제공 3) 스풀링과 파일 시스템: 가상의 카드 판독기, 가상의 라인 프린터 제공 4) 시분할 터미널: 가상의 전용 콘솔 제공 5) 소형 디스크(minidisk): 물리적 디스크에서 필요한 트랙을 할당하여 가상의 디스크 제공 • OS 측면: 사용자는 주어진 가상기계 위에 단일 사용자 대화형 운영체제 CMS를 수행
  • 20. CH2.8 가상 기계 (VIRTUAL MACHINE) • 장점 1) 시스템 자원의 완전한 보호: 각 가상 기계는 다른 모든 가상 기계로부터 완전히 분리되어 보 안의 문제가 없으나, 반면 자원을 직접 공유할 수 없음 → (공유 방법) ① 소형 디스크 공유 ② 가상 기계의 통신 네트워크 정의 2) 가상 기계 시스템은 운영체제 연구와 개발에 완벽한 매체로서 사용될 수 있음 → 시스템 개발 시간에도 정규 시스템 동작을 중단할 필요 없음 3) 가상기계는 시스템 호환성 문제를 해결하는 수단으로 사용됨 → 선 마이크로시스템(Sun Microsystems)과 DEC(Digital Equipment Corporation) 등의 컴퓨터에 가상 인텔 기계를 두어 MS-DOS용 프로그램을 실행 시 킬 수 있음
  • 21. CH2.8 가상 기계 (VIRTUAL MACHINE) • 자바(Java): 선 마이크로시스템사에서 설계한 프로그래밍 언어 → 자바 언어에 의해 작성된 자바 프로그램은 자바 컴파일러에 의해 자바 가상 기계(JVM)에서 실행될 수 있는 바이트코드(bytecode)를 생성함 • 자바 가상 기계(JVM) - 여러 종류의 범용 운영체제 컴퓨터에서 실행됨 ex) IBM 호환 PC, 매킨토시, Unix 워크스테이션 및 서버, IBM 소형 및 대형 컴퓨터 등 - 웹 브라우저에서도 실행됨 ex) 마이크로소프트 익스플로러, 넷스케이프 커뮤니케이터 등 - 하드웨어 상에서 직접 자바를 수행하는 작은 크기의 JavaOS에서 실행됨 ex) 무선전화기 등 • 자바 가상 기계는 산술, 논리, 데이터 이동, 흐름 제어 명령을 포함하는 스택 기반 명령어 세 트를 실현하며, 하드웨어에 구축하기에 복잡한 객체 생성, 조작, 메소드 호출 명령 등을 실 현할 수 있음 • 자바의 설계는 가상 기계를 구현하는 완벽한 환경을 제공함 → 바이트 코드는 기반이 되는 기계의 보안과 신뢰성을 위협하는 명령인지 검사된 후 만족되지 않으면 수행되지 않음
  • 23. CH2.9 운영체제 생성 (OPERATING SYSTEM GENERATION) • 시스템 생성(SYSGEN): 범용 운영체제가 특정 컴퓨터를 위해 구성되고 생성되는 것 • SYSGEN 프로그램: 하드웨어 시스템의 특정 구성에 관한 정보를 운영자에게 요구하거나 파일로부터 판독함 - 사용하는 중앙처리장치의 종류 - 사용 가능한 기억장치의 크기 - 사용 가능한 주변장치의 종류 - 요구하는 운영체제의 종류 등
  • 24. CH2.10시스템 부트 • 부트스트랩 프로그램(bootstrap program)/부트스트랩 적재기(bootstrap loader): 운영체제의 위치를 파악하여 기억장치에 적재하고 실행시키는 프로그램 → ROM에 저장되어 있음 • 부트프로그램  기계 상태 진단 시스템 전체 초기화  운영체제 시작 • 운영체제 전체를 ROM에 저장하는 형식 : 부트스트랩 코드 변경시 ROM 칩을 교체해야함  EPROM(쓰기도 가능하도록 만드는 명령어가 주어지기 전까지는 읽기 전용을 유지함)  하드웨어와 소프트웨어의 중간적인 특정 : ROM 에 담긴 형태를 Firmware 라고 함.  부트 블록 : 대용량 운영체제 또는 자주 변경되는 시스템부트스트랩은 펌웨어로 운영체제는 디스크에 존재  진단이 끝나고 운영체제를 시작하기 위한 디스크의 고정된 위치  부트 디스크 : 디스크 상의 부트스트랩과 운영체제의 새 버전을 디스크에 기록 부트 파티션을 가지고 있는 디스크