Midnight Coder's Lounge

[CS-운영체제] 입문 본문

Personal Log

[CS-운영체제] 입문

AtomicLiquors 2023. 1. 8. 22:55

입과 전 적응기간을 틈타서 후순위로 밀려있던 운영체제 공부를 시작했습니다.

야심차게 공룡책 사서 본가 책꽂이에 꽂아둔 지가 3개월째인데 

결국 타지 올라와서 생활할때까지 못 보고 왔네요. 반성해야겠습니다 흑흑

 

분반 테스트 결과가 어떻게 될진 모르지만 개발자에게 중요한 지식인만큼

시간 내서 한번 배울때 확실히 배우고 넘어가도록 하겠습니다.

 

 

 

[기반 강의] HPC Lab. KOREATECH 운영체제 강의

https://www.youtube.com/watch?v=EdTtGv9w2sA&list=PLBrGAFAIyf5rby7QylRc6JxU5lzQ9c4tN&index=1 

 


 

운영체제 정의

운영체제의 정의에 대해서는 의견이 분분합니다.
본 강의에서는 운영체제를 다음과 같이 정의하고 있습니다.

1) 하드웨어가 가진 컴퓨터 시스템 자원을 효율적으로 관리하여,

2) 사용자에게 응용 프로그램을 제공하는 소프트웨어

 

 

운영체제의 역할

  • 유저 인터페이스 : 편리성 제공
  • 자원관리 : 효율성 제공
  • 프로세스와 쓰레드 관리
  • 시스템 보호

 


 

운영체제 분류

운영체제는 크게 다음과 같이 분류됩니다.

- '동시 사용자 수'에 따라 싱글 유저 시스템(PC나 모바일 등 개인용 기기) 또는 멀티 유저 시스템(서버, 클러스터)

- '동시 실행 프로세스 수'에 따라 싱글태스킹 시스템, 멀티태스킹 시스템

 

그리고 '작업 수행 방식'에 따라 아래와 같이 몇 가지 분류가 나뉘는데,
이는 컴퓨터가 발달해 온 역사와도 궤를 같이합니다.

 

 

순차 처리 : 운영체제 없음 (~1940s)

운영체제가 존재하지 않던 시기의 작업방식입니다.

그랬기 때문에 사용자가 기계어로 직접 프로그램을 작성하고, 하드웨어도 직접 제어해야 했습니다.

프로그램이 작성된 '천공 카드'를 입력하면 프로그램이 작동하는 방식이었고

실행하는 작업별로 순차적으로 처리되었으며, 각 작업마다 일정한 준비시간이 소요되었습니다.

 

 

일괄 처리 시스템 Batch Processing System (1950s-60s)

모든 시스템을 중앙 기관에서 관리하고 운영하는 방식입니다.

사용자의 작업 요청이 들어있는 천공 카드를 기관에서 모아뒀다가 한 번에 처리하였습니다.

 

Pros)

중앙기관의 시스템 자원을 여러 사용자가 공유할 수 있었습니다.

 

Cons)

생산성이 낮다는 문제가 있었습니다.
나의 작업이 처리되기를 기다리기 위해서 같은 유형의 작업이 모일 때까지 기다려야 했고,

그 과정에서 6시간에 가까운 응답 시간이 소요되었습니다.

 

 

시분할 시스템 Time Sharing System (1960s-70s)

여러 프로그램이 시간을 조금씩 나눠 교대로 자원을 사용하는 방식입니다.
대화형 시스템, 단말(terminal)의 도입으로 사용자 지향적이라는 특징이 있습니다.

 

Pros)

  • 응답시간이 약 5초 수준으로 단축되었습니다.
  • 프로세서 유휴시간이 감소하였습니다.

Cons)

  • 통신비 증가 : 통신선 단가와 보안 문제로 부담할 비용이 늘어났습니다.
  • 개인 사용자가 체감하는 속도는 오히려 떨어졌습니다.
    동시 사용자 수가 늘어나면 시스템 부하도 늘어났고 이는 속도 저하로 이어졌습니다.

 

병렬처리 시스템 Parallel Processing System 

PC의 등장 이후 출현한 시스템입니다.
응답시간은 빨랐지만 성능은 다소 떨어졌던 PC의 단점을 보완해 주었습니다.

 

'한 시스템에 여러 개의 프로세서를 사용한다'는 특징을 중심으로 아래와 같은 특성이 있습니다.

  • Tightly-coupled system : 여러 개의 프로세서들이 메모리와 같은 자원을 서로 공유합니다.
  • 신뢰성 향상 : 하나의 프로세서가 망가져도 시스템은 정상적으로 동작할 수 있게 되었습니다.
  • 프로세서 간 관계 및 역할 관리가 추가적으로 필요하게 되었습니다.

 

 

분배 프로세스 시스템 Distributed Processing System 

“네트워크를 기반으로 병렬처리 시스템을 구축한 것”입니다.

개별적으로 OS가 탑재된 컴퓨터가 네트워크 상에서 하나의 노드가 됩니다.

  • Loosely-coupled system 
  • 분산 운영체제 사용
  • 자원 공유를 통해 성능을 높였습니다.
  • 구축과 관리가 어렵다는 단점이 있습니다.

 

실시간 시스템 Real-time Systems

작업처리에 제한시간이 걸려있는 시스템입니다.
효율적인 자원 사용보다, 서비스 제공 시간을 엄수하는 것이 우선일 경우 사용됩니다.

  • Hard real-time task :
    시간엄수에 실패하면 치명적 결과가 발생하는 작업입니다.
    원자력 발전소 관리, 군사병기 제어 시스템 등이 해당하겠습니다.
  • Soft real-time task :
    동영상 스트리밍처럼 시간이 좀 늦더라도 불편할 뿐인 작업입니다.

 

 


 

하드웨어 종류

프로세서

연산 장치, 모든 컴퓨터 부속 장치의 동작을 제어하는 장치.

“컴퓨터의 두뇌”라고 할 수 있겠습니다. 

CPU(Central Processing Unit), GPU(Graphics Processing Unit)가 프로세서에 해당합니다.

 

 

메모리

기억 장치, 데이터를 저장하는 장치.

일반적으로 속도가 느리면 단가가 싸고, 용량을 대용량으로 만들 수 있습니다.

 

  • 레지스터 :
    프로세서 내부에 존재하는 메모리. 프로세서가 사용할 데이터를 저장합니다. ”컴퓨터에서 가장 빠른 메모리”입니다.
  • 캐시 :
    마찬가지로 프로세서 내부에 존재합니다.
    아래의 주기억장치가 가진 데이터를 일부 저장하여, 요청이 있을 때 빠르게 데이터를 조달해 줍니다.
  • 주기억장치 :
    프로세서가 수행할 프로그램과 데이터를 저장합니다. 주로 용량이 크고 저렴한 DRAM을 사용합니다.
  • 보조기억장치 :
    컴퓨터 전원이 꺼진 뒤에도 프로그램과 데이터를 저장할 수 있는 장치입니다.
    다만 이쪽은 엄밀히 메모리 장치로 분류하진 않고 주변장치로 분류하는 것으로 보입니다.

주변장치

프로세서와 메모리를 제외한 하드웨어들입니다.

입력장치, 출력장치, 앞서 언급한 보조기억장치가 있습니다.

 

 

 

 

위와 같은 내용을 학습한 뒤 운영체제의 구조와 기능에 대해 간단하게 알아보았습니다.

 

 

현재 진도

[ 4강 / 총 46강 ]

 

 

Comments