인프런 공룡책 정리 - Section 01 | CS Study

hoya·2022년 2월 5일
0

CS Study

목록 보기
2/13
post-thumbnail

⚠️ 해당 포스팅은 인프런 공룡책 강의를 듣고 개인적으로 정리하는 글입니다. 정확하지 않은 정보가 있을 수 있으니 주의를 요합니다.

Section 01

Chapter 1,2 Introduction & O/S Structures


들어가기 전

Computer

  • 컴퓨터는 정보를 처리하는 기계를 의미한다.
  • 소프트웨어가 하고자 하는 모든 것을 하드웨어가 지원해주는 것을 컴퓨터라고 부른다. ( 계산기의 경우 계산만 할 수 있으니 컴퓨터가 아니다.)
  • 컴퓨터는 4개의 컴포넌트로 나눌 수 있다. (H/W, O/S, Program, User)
  • 기본적으로 컴퓨터는 CPU, 디바이스로 구성되어 있으며 bus를 통해 둘 사이를 연결한다.

Inforamtion

  • 정보는 불확실한 상황을 측정해 수치적으로 표현한 것을 의미한다.
  • 정보의 최소 단위는 bit(binary digit)로, 정보량을 구하는 방법은 아래의 사진과 같다.

  • 정보를 처리하기 위해서는 정보의 상태 변환(0 -> 1, 1 -> 0)이 필요하다. 이를 위해 부울 대수(NOT, AND, OR 게이트)를 활용한다.

Von Neumann architecture

  • 내장형 프로그램 컴퓨터 구조 (Stored-Program Computer)
  • 메모리에 프로그램을 저장함을 의미한다.
  • CPU가 메모리에서 명령어를 가져와 실행하는 구조로 구성되어 있으며, 명령어가 실행되면 결과는 다시 메모리로 저장시킨다.
  • 폰 노이만 아키텍처를 따르지 않는 컴퓨터로는 신경망 컴퓨터, 네트워크 컴퓨터, 양자 컴퓨터 등이 있다.

Program

  • 명령어들의 집합을 의미한다.

O/S (Operation System)

정의

일반적으로 운영체제에 대한 완전한 정의는 없으나, 보통 컴퓨터에서 항상 돌아가고 있는 프로그램을 운영체제라고 칭한다.

어떤 일을 하는가?

  • 컴퓨터 시스템을 관리하고, 프로그램이 실행될 수 있는 환경을 제공한다.
  • 시스템 서비스를 여러 응용 프로그램에게 제공한다.
  • 프로세스, 리소스, UI등을 관리한다.
  • 응용 프로그램들이 하드웨어 서비스를 받을 수 있게 운영체제가 관리한다.
  • H/W - 유저 사이의 중재자 역할을 수행한다.

Bootstrap Program

  • 컴퓨터를 실행하면 첫 번째로 실행되는 프로그램이다.
  • 이 프로그램은 곧바로 운영체제(특히 커널)를 로딩한다.
  • 운영체제는 로딩이 완료되면 응용프로그램을 알아서 로딩한다.
  • 정리 : 전원을 실행 - CPU에서 부트스트랩 프로그램을 불러오고 실행 - 운영체제가 로딩되면 응용프로그램을 알아서 실행

Interrupts

  • CPU가 다른 기능을 수행하는 도중에 급하게 다른 일을 처리하고자 할 때 사용할 수 있는 기능을 의미한다.
  • H/W는 언제라도 인터럽트를 트리거할 수 있다.
  • CPU에게 시그널을 보내면, 시스템 버스를 통해 시그널을 전달한다.

Storage Systems

  • 용량, 속도에 따라 스토리지 시스템을 계층 구조로 나타낸다.

I/O Structure

  • O/S의 상당 부분은 I/O 관리에 치중한다.

  • DMA(Directed Memory Access) : I/O 작업을 CPU 대신 디바이스가 직접 실행하는 것을 의미한다. 모든 데이터 전송이 끝나면 Interrupt 를 통해 CPU에게 완료되었음을 알린다.(이미지 출처)

  • 유튜브를 시청할 때 네트워크에서 CPU로 데이터를 보내도 CPU가 처리할 일이 많이 없으므로, 네트워크에서 디바이스로 곧바로 데이터를 전송하는 것이 DMA의 예시이다.
  • 데이터 전송을 DMA 장치가 대신 해주는 것이므로 CPU 효율이 증가한다.

O/S Operations

  • Multi-Programming
    한 개 이상의 프로그램을 동시에 실행하는 것을 의미한다.
    여러 프로세스가 동시에 메모리 안에 있고, 이로 인해 CPU 사용 효율이 증가한다.
  • Multi-Tasking(Multi-Processing)
    위의 Multi-Programming 의 논리적 확장이며, 1개의 CPU가 수행 작업을 계속해서 전환한다.
    사용자의 입장에서는 동시에 실행되는 것처럼 보인다.
    CPU Scheduling : 하나의 프로세스를 실행하고 난 후 다음 프로세스는 어떤 것을 실행할지 결정하는 것을 의미한다.

O/S Mode

  • 운영체제는 서로 다른 두 개의 모드가 있으며, 유저 모드와 커널 모드로 구성되어 있다.
  • 해킹 혹은 초보 사용자의 실수로 잘못된 프로그램을 실행하여 시스템을 망가뜨리는 위험을 방지하기 위해 만들어졌다.
  • 커널 모드에서만 직접적으로 하드웨어를 제어한다.

System Calls : OS가 응용 프로그램에게 제공하는 인터페이스로, 커널에 관련된 것을 커널 모드에서 실행하기 위해 프로그램이 OS에게 요청하는 것을 의미한다.

Virtualization

  • 가상화는 하나의 H/W에 여러 O/S를 배치하는 것을 의미한다.

Computing Environments

  • 다양한 컴퓨팅 환경에 운영체제가 자리하고 있다.
  • 전통적 컴퓨팅 환경
  • 모바일 컴퓨팅 환경 (Android, iOS)
  • 클라이언트 서버 컴퓨팅 (WEB)
  • Peer-to-Peer 컴퓨팅 (Torrent, Bitcoin, Block Chain)
  • 클라우드 컴퓨팅 (AWS, Azure, GCP)
  • Real-Time 임베디드 시스템 (원하는 작업을 특정 시간안에 수행)

User and Operating-System Interface

  • 사용자는 OS에 접근할 때 세 가지 방법을 사용할 수 있다.
  • CLI(Command line Interface) : 명령어 기반 접근 - Shells
  • GUI(Graphical User Interface) - Windows, MacOS
  • Touch-Screen Interface - Android UI, iPhone UI
profile
즐겁게 하자 🤭

0개의 댓글