Ocean_
꾸준한 프로그래밍
Ocean_
전체 방문자
오늘
어제
  • 분류 전체보기 (174)
    • About Me (4)
    • 우아한테크코스 (27)
    • C & LINUX (50)
    • Operating System (12)
    • Database (25)
    • Computer Vision (0)
    • Problem Solving (0)
      • Programmers (0)
      • BOJ (0)
    • 코코코딩공부 (44)
      • Spring (12)
      • JAVA (14)
      • 디자인 패턴 (4)
      • 책 읽기 (4)

블로그 메뉴

  • 홈
  • 방명록

공지사항

인기 글

태그

  • DB
  • BOJ
  • Operating System
  • 백준
  • 원시값 포장
  • bean
  • signal
  • 우테코5기
  • 프로세스
  • Spring
  • OperatingSystem
  • 우테코
  • 운영체제
  • 리눅스
  • Linux
  • 트랜잭션
  • 우아한테크코스5기
  • 자바
  • 우아한형제들
  • 우아한테크코스
  • OS
  • 1259
  • 우테코 체스
  • SIGINT
  • 블랙잭
  • 데이터 조작어
  • C++
  • 정규화
  • 인덱스
  • C

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Ocean_

꾸준한 프로그래밍

Operating System

[Operating System] 운영체제란?

2022. 12. 19. 15:37

운영체제란?

  • 응용 프로그램이 요청하는 시스템 리소스를 효율적으로 분배하고, 지원하는 SW
  • 자원 관리자
  • HW 존재를 상세히 몰라도 SW적으로 사용가능하게한다.
  • HW숨기기 위해 SW적으로 추상화한다.
  • HW를 추상화 → HW를 클래스,구조체로 정의
    • CPU MEMORY DISK를 구조체로 Process, VirtualMemory, FileSystem으로 만든다.
  • HW 자원을 적절히 관리하여 여러 프로그램이 동시에 실행될 수 있도록 하며, 프로그램끼리 상호작용할 수 있도록 한다.
  • OS는 kernel 함수를 이용해 HW를 관리하며, 사용자는 kernel 함수를 직접 호출하지 않고, system call을 사용하게 된다.
    • OS가 부팅될 때 메모리에 올라가 상주하는 소스코드 부분을 커널이라고 한다.

운영체제의 역할

  • 메모리를 공유하고 디바이스와 상호작용하는등의 작업을 대신 함으로 사용자가 프로그램을 쉽게 돌리게하는 SW이다.
    • 실제로 HW가 어떻게 작동하는지를 숨기고(가상화), 사용자가 간단하게 사용할 수 있는 관리 도구를 제공(추상화)한다.
  • 시스템이 사용하기 쉬운 방식으로 정확하고 효율적으로 작동하는지 확인하는 SW

추상화

  • HW를 SW로 표현하는것
  • 자원을 관리하는 SW
  • CPU → Process
  • Memory → Virtual Memory

가상화

  • 여러개의 프로세스가 동시에 수행되는 것처럼 가상화 사용
  • 실제 생김새나 기능을 사용자에게 숨겨 구조 등을 착각하게 만듦
  • OS는 물리적자원을 보다 일반적이고 강력하며 사용하기 쉬운 가상형식으로 변환
  • CPU → 프로그램마다 별도의 CPU를 모두 보유한 것처럼 보이게 함 (Context Switch)
  • Memory → 프로그램마다 별도의 Memory를 모두 보유한 것처럼 보이게 함 (Share Memory)

CPU 가상화

  • 단일 CPU를 많은 수의 CPU가 있다고 보이게함.
  • 여러개의 프로그램이 동시에 수행 → 겉보기에 한번에 실행되는 프로그램은 우리가 CPU가상화라고함.
  • 사용자와 OS가 상호 작용하는 방법 제공

메모리 가상화

  • 마치 실행중인 각 프로그램에 고유한 각자 메모리가 있는 것 같이 보이게함(프로세스별)
    • 가상주소는 같으나 물리주소는 다르다
  • OS는 이렇게 가상의 memory 주소와 물리적 memory 주소를 mapping하는 역할을 수행한다.
    • 요즘은 HW CPU가해줌 더빨라서
  • 하나의 실행 프로그램 내의 메모리 참조는 다르프로세스의 주소공간에 영향을 미치지 않는다.

Concurrency

  • 병행성 문제
  • 프로세스간 전환이 일어날때 항상 원자적으로 실행되지 않는다. 같은조건에서 프로세스 실행해도 값이 다를 수 있다.

Persistence

  • 지속성
  • 파일 시스템으로 추상화(자료구조로) 되나 그냥 하나로 보여준다(가상화 안됨)
  • 파일 시스템은 사용자가 생성한 모든 파일 안전하게 저장

시스템콜은 컴파일 시 커널의 함수를 호출한다.

'Operating System' 카테고리의 다른 글

[Operating System] 공평한 스케줄러  (0) 2022.12.28
[Operating System] MLFQ Multi-level Feedback Queue Scheduling  (2) 2022.12.28
[Operating System] 스케줄링  (0) 2022.12.19
[Operating System] 프로세스 실행  (0) 2022.12.19
[Operating System] 프로세스  (0) 2022.12.19
    'Operating System' 카테고리의 다른 글
    • [Operating System] MLFQ Multi-level Feedback Queue Scheduling
    • [Operating System] 스케줄링
    • [Operating System] 프로세스 실행
    • [Operating System] 프로세스
    Ocean_
    Ocean_
    dongVeloper

    티스토리툴바