Carnival7
Change Developer
Carnival7
전체 방문자
오늘
어제
  • 분류 전체보기
    • 자바의 정석
    • 프로그래밍 언어별 tools
      • 파이썬
      • 자바
    • 코딩 테스트
      • 백준 강의 기초편
      • 백준 강의 연습편
      • 백준 강의 문제편
      • 삼성 기출
      • 백준 - 일반
      • 카카오 기출
      • 프로그래머스 - 일반
      • 코테 풀이 Tools
    • CS
      • Network
      • 운영체제
      • 알고리즘
      • DB
    • Web_Backend
      • Spring
      • 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
      • 스프링 핵심 원리 - 기본편
    • DevOps
    • IT 업무 지식
      • 인프라
      • 클라우드
    • 자격증
      • AWS - CLF
      • 정처기 - 실기
    • 생각 정리

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 프로그래머스 #카카오기출 #레벨2
  • 스프링 부트 무중단 웹 서비스
  • 스프링 #인터셉터 #AOP #필터
  • ci/cd
  • code deploy
  • 스프링 #AOP
  • Github Actions
  • 알고리즘 #백준강의기초편 #코딩테스트
  • nginx
  • 슬라이딩 윈도우 #덱
  • 삼성기출 #2023 #상반기
  • 삼성기출 #백준강의문제편
  • DevOps
  • 슬라이딩 윈도우
  • DMZ
  • 코딩테스트 #삼성기출 #구현 #시뮬레이션

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Carnival7

Change Developer

CS/운영체제

1. 운영체제와 컴퓨터

2024. 7. 12. 10:00

운영체제와 컴퓨터


  • 운영체제와 컴퓨터
    • 운영 체제란 무엇인가?
      • [운영체제의 목적]
        • 1. 처리 능력
        • 2. 반환 시간
        • 3. 사용 가능도
        • 4. 신뢰도
      • [ 운영체제의 역할 ]
        • 1. 프로세스 관리
        • 2. 저장장치 관리
        • 3. 네트워킹
        • 4. 사용자 관리
        • 5. I/O 디바이스 관리
      • [운영체제의 종류]
        • 1. 윈도우즈
        • 2. UNIX
        • 3. LINUX
        • 4. MacOS
        • 5. Android
        • 6. iOS
          • [참고 자료 및 주제와 관련하여 참고하면 좋은 곳 링크]
      • Reference

운영 체제란 무엇인가?

운영 체제(OS, Operating System)

: 하드웨어와 컴퓨터 시스템의 자원들을 효율적으로 관리하며, 응용 프로그램과 하드웨어 간의 인터페이스로써 다른 응용 프로그램이 유용한 작업을 할 수 있도록 환경을 제공해준다.

즉, 운영 체제는 사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 시스템 소프트웨어라고 할 수 있다.

(종류로는 Windows, Linux, UNIX, MS-DOS 등이 있으며, 시스템의 역할 구분에 따라 각각 용이점이 있다.)



[운영체제의 목적]

1. 처리 능력

일정 시간 내에 시스템이 처리하는 일의 양

2. 반환 시간

시스템에 작업을 의뢰한 시간부터 처리가 완료될 때까지 걸린 시간

3. 사용 가능도

시스템을 사용할 필요가 있을 때 즉시 사용 가능한 정도

4. 신뢰도

시스템이 주어진 문제를 정확하게 해결하는 정도

[ 운영체제의 역할 ]


1. 프로세스 관리

: CPU 소유권을 어떤 프로세스에 할당할지, 프로세스의 생성과 삭제, 자원 할당 및 반환을 관리

  • 프로세스, 스레드
  • 스케줄링
  • 동기화
  • IPC 통신

운영체제에서 작동하는 응용 프로그램을 관리하는 기능이다.

어떤 의미에서는 프로세서(CPU) 관리하는 것이라고 볼 수도 있다. 현재 CPU를 점유해야 할 프로세스를 결정하고, 실제로 CPU를 프로세스에 할당하며, 이 프로세스 간 공유 자원 접근과 통신 등을 관리하게 된다.

2. 저장장치 관리

: 메모리 및 파일 저장 관리

  • 메모리 관리
  • 가상 메모리
  • 파일 시스템

1차 저장장치에 해당하는 메인 메모리와 2차 저장장치에 해당하는 하드디스크, NAND 등을 관리하는 기능이다.

  • 1차 저장장치(Main Memory)
    • 프로세스에 할당하는 메모리 영역의 할당과 해제
    • 각 메모리 영역 간의 침범 방지
    • 메인 메모리의 효율적 활용을 위한 가상 메모리 기능
  • 2차 저장장치(HDD, NAND Flash Memory 등)
    • 파일 형식의 데이터 저장
    • 이런 파일 데이터 관리를 위한 파일 시스템을 OS에서 관리
    • FAT, NTFS, EXT2, JFS, XFS 등 많은 파일 시스템들이 개발되어 사용 중
3. 네트워킹

: 사용자와 컴퓨터 하드웨어 사이에 위치해서, 하드웨어를 운영 및 관리하고 명령어를 제어하여 응용 프로그램 및 하드웨어를 소프트웨어적으로 제어 및 관리

  • TCP/IP
  • 기타 프로토콜
4. 사용자 관리

: 사용자 계정 관리

  • 계정 관리
  • 접근권한 관리

운영체제는 한 컴퓨터를 여러 사람이 사용하는 환경도 지원해야 한다. 가족들이 각자의 계정을 만들어 PC를 사용한다면, 이는 하나의 컴퓨터를 여러 명이 사용한다고 말할 수 있다.

따라서, 운영체제는 각 계정을 관리할 수 있는 기능이 필요하다. 사용자 별로 프라이버시와 보안을 위해 개인 파일에 대해선 다른 사용자가 접근할 수 없도록 해야 한다. 이 밖에도 파일이나 시스템 자원에 접근 권한을 지정할 수 있도록 지원하는 것이 사용자 관리 기능이다.

5. I/O 디바이스 관리

: I/O 디바이스(마우스, 키보드)와 컴퓨터 간 데이터를 주고받는 것을 관리

  • 순차접근 장치
  • 임의접근 장치
  • 네트워크 장치

운영체제는 시스템의 자원, 하드웨어를 관리한다. 시스템에는 여러 하드웨어가 붙어있는데, 이들을 운영체제에서 인식하고 관리하게 만들어 응용 프로그램이 하드웨어를 사용할 수 있게 만들어야 한다.

따라서, 운영체제 안에 하드웨어를 추상화 해주는 계층이 필요하다. 이 계층이 바로 디바이스 드라이버라고 불린다. 하드웨어의 종류가 많은 만큼, 운영체제 내부의 디바이스 드라이버도 많이 존재한다.

이러한 수많은 디바이스 드라이버들을 관리하는 기능 또한 운영체제가 맡고 있다.



[운영체제의 종류]

1. 윈도우즈

  1. 그래픽 사용자 인터페이스(GUI)
  2. 선점형 멀티태스킹
  3. PnP
  4. OLE
  5. 255자의 긴 파일명
  6. Single-User 시스템

2. UNIX

  1. 시분할 시스템을 위해 설계된 대화식 운영체제
  2. 소스가 공개된 개방형 시스템
  3. 대부분 C언어로 작성되어 이식성 높으며 장치, 프로세스 간 호환성이 높다
  4. 다중 사용자, 다중 작업 지원
  5. 트리 구조 파일 시스템

UNIX 구성

  1. 커널
    1. 하드웨어를 보호하고, 프로그램과 하드웨어 간의 인터페이스 역할 담당
    2. UNIX 의 가장 핵심적인 부분
    3. 프로세스(CPU 스케줄링) 관리, 기억장치 관리, 파일 관리, 입출력 관리, 프로세스 간 통신, 데이터 전송 및 변환 등 여러가지 기능 수행
  2. 쉘
    1. 사용자의 명령어를 인식하여 프로그램을 호출하고 명령을 수행하는 명령어 해석기
    2. 시스템과 사용자 간 인터페이스 담당

3. LINUX

  1. UNIX 기반 개발된 운영체제
  2. 오픈 소스

4. MacOS

5. Android

  1. 자바와 코틀린으로 애플리케이션 작성

6. iOS



[참고 자료 및 주제와 관련하여 참고하면 좋은 곳 링크]
  • 도서 - '도전 임베디드 OS 만들기' ( 이만우 저, 인사이트 출판 )
  • 글 - '운영체제란 무엇인가?' ( https://coding-factory.tistory.com/300 )

Reference

https://github.com/gyoogle/tech-interview-for-developer/blob/master/Computer%20Science/Operating%20System/Operation%20System.md

'CS > 운영체제' 카테고리의 다른 글

4. 멀티 프로세스와 멀티 스레드  (0) 2024.07.12
3. 멀티 태스킹과 PCB와 컨텍스트 스위칭  (0) 2024.07.12
2. 프로그램과 프로세스, 스레드  (0) 2024.07.12
동기와 비동기  (0) 2021.12.25
캐시  (0) 2021.11.21
    'CS/운영체제' 카테고리의 다른 글
    • 3. 멀티 태스킹과 PCB와 컨텍스트 스위칭
    • 2. 프로그램과 프로세스, 스레드
    • 동기와 비동기
    • 캐시
    Carnival7
    Carnival7

    티스토리툴바