[OS] Ch 2. Operating-system Structures

chaewon·2023년 4월 19일
0

Operating System

목록 보기
3/7
post-thumbnail

📍 배경

  • H/W 구입 ➜ OS 설치 ➜ computer 사용 가능
    • 응용프로그램 X → 폴더에 가서 file 다루기 정도
    • network - - - OS (H/W) ← user
      • OS: software를 잘 쓸 수 있게 해주는 역할

📍Operating System Services

1. User interface (U/I) 지원

  • 사용자의 작업을 기다리고 있는 상태
  • CLI이나 그래픽으로 지원

형태

  • command line (CLI)
    • 대화 형식, 명령어 라인으로 지원
    • kernel에서 구현되는 경우도 있고, system program에서 구현되는 경우도 있음
    • 사용자로부터 명령을 가져와 실행
  • GUI
    • 주로 마우스 사용 (더블클릭, 클릭, 드래그 등)
  • batch (= 일괄처리)
    • 일련의 명령어를 한 번에 처리
  • Touch screen
    • gesture interface (ex. 확대, 축소)
    • 음성 command (ex. 시리, 빅스비)
    • 화면상 키보드

2. program 실행

  • 실행 명령어
    • run (옛날), 더블클릭 (오늘날)
  • memory load 실행 시작

3. I/O 연산 지원

  • efficiency (효율), protection (안전)

➠ I/O를 잘 짜진 OS로 구성하는 이유: 검증된 프로그램이기 때문

  • user가 I/O를 작업하는 경우 거의 X, OS 담당

4. File system

  • data를 체계적으로 분류, 저장하는 방법지원

  • 지원 명령어: 복/붙, delete, move 등

  • file이란?

    • 보조기억장치에 저장되는 data 단위
    • 얘를 관리한다는 것 = 컴퓨터의 저장기능을 관리한다.

5. communication

  • process 간의 comm: process 간 서로 주고 받는
  • computer 간의 comm: network를 이용하는
  • comm는 shared memory, message passing을 통해 이루어질 수 있음

6. Error direction

  • CPU
    • ex. 프로그램 멈추는 경우
  • memory
    • ex. *p (포인터) 잘못 사용하는 경우
  • I/O device
    • ex. 프린터 사용시 어떤 오류가 났음을 알려주는.

7. Resource allocation

  • 여러 사람, user가 여러개를 돌리고 있기 때문에 OS가 관리하고 있음.
  • 여러 사용자 또는 여러 작업이 동시에 실행되는 경우 리소스를 각 사용자에게 할당해야 합니다
  • resource마다 관리 방법이 다름

8. Accounting (계정관리)

  • 계정분류, 관리, 로그인절차
  • 사용 권한을 제어하는 것 중 하나.

9. Protection and security

  • protection: user, process로부터 system resource 보호
  • security: system을 외부, 내부 공격으로부터 보호하는 것
    • viruses, worms 보호
    • 명의 도용, 불법 사용 방지

📍 System Call

: 내장되어 있는 함수를 call해서 사용하는 것

(운영 체제의 kernel이 제공하는 서비스에 대해, 응용 프로그램의 요청에 따라 kernel에 접근하기 위한 인터페이스이다.)

  • process(실행 상태에 있는 program)와 OS간의 interface
  • OS에서 제공하는 서비스에 대한 progamming interface
  • program 중간중간 system call 있음 ∴ I/O device 사용가능
  • 시스템 호출 사용이 아닌 고급 API(Application Programming Interface)를 통해 프로그램에서 액세스합니다
    • portability (이식성): 이 system에도 적용하는 것을 다른 system에도 적용가능한 것. (표준 API사용)

1. 종류

  1. process 제어
    • 프로세스 생성 및 종료
    • 메모리에 로드, 실행
    • 프로세스 속성 값 확인, 지정
    • wait 이벤트, signal 이벤트
    • 메모리 할당
    • 예) fork, wait, exec 등
  2. file maniplation → OS의 기본기능
    • 파일 생성, 파일 삭제
    • 열기, 닫기
    • 읽기, 쓰기, Reposition
    • 파일 속성 값 확인, 지정
    • 예) open, read, write, close 등
  3. device management (ex. printf, scanf)
    • 디바이스 요청 및 해제
    • 읽기, 쓰기, Reposition
    • 디바이스 속성 확인, 지정
    • 비 물리적인 디바이스 해제 및 장착
  4. Information maintenauce (ex 지금 hard disk가 얼마나 찼는지)
    • 시간 확인, 시간 지정
    • 시스템 데이터 확인, 지정
    • 프로세스, 파일, 디바이스 속성 가져오기
    • 프로세스, 파일, 디바이스 속성 설정하기
  5. communication
    • 커뮤니케이션 연결 생성 및 삭제
    • 메시지 송신, 수신
    • 상태 정보 전달
    • remote 디바이스 해제 및 장착
  6. protection 등
    • Permission 획득
    • Permission 설정

2. 구현

  • 시스템 호출 인터페이스는 OS kernel에서 의도된 시스템 호출을 호출하고 시스템 호출의 상태와 모든 반환 값을 반환.

3. system call에서 parameter 전달방법

  1. register에 넣어서 전달 (단점: 갯수의 제한)
  2. memory 상에 table이나 block에 저장하고 시작위치를 register에 넣어 전달
  3. stack에 넣어서 전달
    • system에 stack이 있음

📍 System Programs

: OS를 깔았더니 이미 깔려있는 프로그램들 (기본적으로 깔려있는 것)

분류

  • File manipulation
    • createm delete, copy … etc
  • Status information
    • sometimes stored in a File modification
    • 일부는 시스템에 날짜, 시간, 사용 가능한 메모리 양, 디스크 공간, 사용자 수 등의 정보를 요청
    • 일부 시스템은 구성 정보를 저장하고 검색하는 데 사용되는 registry를 구현
  • Programming language support
    • OS program으로 보지는 않음
    • compiler로 분류됨 (compiler를 OS로 보지는 않음)
  • Program loading and execution
  • Communications
  • Background services
    • booting 시 실행
      • 일부는 시스템 시작 후 종료
      • 일부는 시스템 부팅부터 종료까지
    • 디스크 검사, 프로세스 예약, 오류 기록, 인쇄와 같은 기능 제공
    • user context에서 실행
    • services, subsystems, daemons로 알려져 있음
      • demons: 실행 안 시켜도 계속 돌아가고 있는. 부팅될때 시작됨
  • Application programs
    • OS의 일부는 아님
    • 내가 따로 설정해야 함.

📍 OS design goals

1. user’s goals

  1. 사용의 편리성
  2. 배우기 쉽다
  3. reliable (신뢰성) - 고장이 나지 않아야 함
  4. safe (안전성)
  5. fast (속도)

2. system goals

  1. easy to
    1. design (설계)
    2. implentation (구현)
    3. maintenauce (유지, 보수)
  2. flexible (융통성, 유연성) - 상황에 따라 대응가능
  3. efficient (효율성)
  4. reliable (신뢰성)
  5. error free

0개의 댓글