본문 바로가기

SoftWare Study/Operating System

공룡책 - 운영체제 정리2

반응형
SMALL

본 게시물은 Abraham Silberschatz의 Operating System Concepts  공룡책을 참고하며 

개인적으로 공부 및 정리한 자료입니다. 

 


Operating System Structures

  • OS Service
  • User Operating System Interface
  • System Call
  • Types of System Calls
  • System programs
  • OS design and Implementation
  • OS structure
  • OS debugging
  • OS generation
  • System Boot
  • OS service : OS는 사용자에게 프로그램 실행 환경을 제공.  
    • UI : 유저 인터페이스 ,( CLI - Command-Line , GUI - Graphics User Interface, Batch ) 
    • Program execution
      • 메모리에 프로그램 로드 및 실행이 가능해야함 
    • I/O operations
      • 키보드 모니터 생각하면됨.
    • File-System manipulation :
      • 프로그램은 파일 읽고쓰고( .C .py .text .word같은것들 쓰는거 ), 디렉토리 만들고 삭제하고 , 찾고 , 권한 관리하고 파일목록리스트 관리해야함 . ( windows linux , mac os, 다동일함 당연한것 ) 
    • Communications
      • 정보 교환가능해야함 ( 내외부 적으로 Network / 공유메모리 or 패킷 이동 등 )
    • Error detection
      • 오류 나면 찾고 알려줘야함 (예외처리) 
      • <1> CPU / MEM / IOdevice / Program 등에서 에러발생함 (블루스크린 혹은 프로그램꺼지거나 등등문제 )
      • <2> 에러에 대해 찾고 알려야함 
    • Resource allocation  리소스 공유로 os기능 효율성보장
      • CPU cycle, main mem, 파일 storage, I/O deivce등 다수의 작업을 할때 리소스를 서로 써서 효율성보장해야함 . (인터넷하면서 워드도 써야하고 뭐 다해야하잖) 
    • Accounting
      • 사용자가 얼만큼의 리소스를 사용하는지 알아야해서 리소스 사용량 추적도해야함
    • Protection and security  
      • Protection
        • 모든 시스템 리소스에 접근하는것들 제어 및 확인해야함 
      • Security
        • 외부로부터 시스템을 보호하기위해 인증절차, 더나아가 잘못된 접근으로부터 I/O장치 까지 보호되어야함 ( 네트워크로 연결되어있어서 바이러스 같은거 .... ) 


  • User Operating System Interface ( UI ) 
    • CLI - Command line interpreter (window cmd같은거 ? 직접 명령가능) 
      • 쉘, 커널, 시스템 프로그램으로 구현
      •  사용자에 기반한 명령을 실행 
      • w , ls , pwd , ping ~  , 등등 ..임
    • GUI
      • I/O 장치 사용해서 아이콘 등이 예임
      • 마우스로 인터럽트 발생해서 실행함.

  • System Call 
    • OS에서 제공하는 프로그래밍 인터페이스로 C C++로 작성.
    • API를 통해 프로그램에서 주로 액세스함 . ( Win32 API, POSIX API ( UNIX, LINUX , MAC OS , JVM, )

유저가 app에서 system call 하면 User mode 의 Interface에서 kernel모드에 있는 넘버링( i )된 시스템을 불러와서 실행 후 결과값을 반환하고 그결과값으 유저에게 보여주는 루틴임 .&nbsp;&nbsp;

 

시스템 콜하는 방법 

<1> parameter를 register로 바로 전달함  (제한된 자원보다 parameter가 더많을수도 있음 )

<2> parameter가 저장된 block, table, memory의 주소를 레지스터로 pass ( linux , solaris ) 

<3> 프로그램에의해 스택에 배치되거나 푸쉬됨, 운영체제가 팝하여 스택에서 꺼내는방법

(parameter의 수 길이 제한이 없음 ) 

&lt;1:3&gt;의 방법 설명&nbsp;


  • Types of System Calls
    • Process controls 
      • 생성 종료 , 중단 , 로드 , 실행 , 속성 설정 , 이벤트 처리 , 메모리 관리 프로그램 관리 등 ,
    • File management
      • 파일 관리( 생성 삭제 열기 닫기 읽고쓰기 등)
    • Device management
    • Information maintenance
      • 데이터설정 시간설정 장치속성등
    • Communications
      • hostname , process name , message passing model, ( TCP IP ), 공유메모리 관리 상태정보 전송 등 
    • Protection
      • 리소스 접근 및 제어 , 권한 설정 등

MS-DOS SIMPLE&nbsp; // 싱글 테스크, 프로세스 생성하지않음 .메모리공간이 단일함 //&nbsp;

 

Free-BSD 멀티 테스킹 , 쉘은 유저가 선택함 / FORKING하여 프로세스 생성가능 /&nbsp;

 


  • System Programs : 기본적으로 개발 및 실행 환경을 제공함 
    • Development & execution environment
    • File management
    • Status information
    • File modification
    • Programming-language support
    • Program loading and execution
    • Communications
    • Background Services
    • Application program

  • OS structure
    • MS-DOS
      • 최소한의 공간으로 기능을 제공하기위해 설계됨 ( memory 기술이 지금같지 않았기떄문이쥐~ ) , 모듈을 나누지 않았음 ,,,
    • UNIX
      • 시스템레벨 / 커널 레벨로 나누어짐 . UNIX&nbsp; 가장아래층은 하드웨어임.
    • Layered Approch
    • Microkernel
      • 커널의 기능이 사용자모드로 많이 넘어왔어 . 정보를 전달하기위해 모듈간 통신이 발생함 ( 공유메모리나 파이프라인으로 쓸걸로 예상함 ) , OS 이식성이 좋아짐 ,&nbsp;
    • Solaris Modular 접근 
    • MacOS (Hybrid System)

  •  
    • IOS
    • Android

  • OS debugging : core dump ( apllication capture memory of the process ) / crash dump kernal memory )
    • Performance Tuning
    • DTrace

  • OS generation
  • System Boot
반응형
LIST