복습 - 운영체제(O/S)

DW J·2022년 8월 3일
0

review

목록 보기
2/7

운영체제


1. 하드웨어를 쉽게 사용할 수 있도록 함

운영체제 구조

하드웨어 < 드라이버 < 커널 < 시스템 콜 < 사용자UI < 응용프로그램

  • 하드웨어 : CPU, Memory, HDD 등
  • 드라이버 : 하드웨어, 커널간 연결
  • 커널 : 하드웨어와 프로세스의 보안을 책임
  • 시스템 콜 : 프로세스가 운영체제에게 어떤 기능을 사용하게 해달라고 요청하는 역할
  • 사용자 UI : 실제 사용 및 개발이 이루어 짐
  • 응용프로그램

2. 프로세스(실행되는 프로그램) 관리

프로세스 메모리구조

CODE / DATA / HEAP / STACK

  • CODE
  • DATA : 전역변수가 저장
  • HEAP : 동적 할당 (참조형 변수)
  • STACK : 지역번수 (함수환경정보, 파라미터)

ex)

var a = 1;
=> DATA에 저장

var b = { c: 1 };
=> STACK에 변수 b가 저장 - c에대한 HEAP주소만 저장
=> HEAP에 변수 c가 저장됨 - 참조형 변수

프로세스 동시 실행

컴퓨터를 사용하다보면 여러개의 프로그램이 동시에 실행되는것 처럼 보인다
그렇다면 운영체제는 어떻게 동시에 프로그램을 실행시키는 것일까?

사실 엄밀히 말하면 운영체제는 여러개의 프로그램을 동시에 실행시키지 못한다
CPU는 한번에 하나의 프로세스만 실행 시킬 수 있는데,
시분할 시스템(Time Sharing)을 통해 마치 동시에 실행하는 것 처럼 보일 수 있게 해준다

시분할 시스템 (Time Sharing System)
사용자가 사용하는 시스템에서 컴퓨터(OS)가 사용자들의 프로그램을 번갈아가며 처리해주는 방법

프로세스가 변경될 때 결국 프로세스가 갖고있는 각각의 Context(문맥)가 변경되는것으로
프로세스의 Context는 커널상 context, 프로세스 주소공간(메모리), 하드웨어 context로 존재하며
운영체제에서는 사용자의 액션에따라 해당 프로세스의 Context를 변경해준다(Context Switching)

profile
잘하는것보다 꾸준히하는게 더 중요하다

0개의 댓글