CS 공부/OS 운영체제

(OS) 운영체제

그린티_ 2025. 5. 1. 20:28
반응형

개념

  • 운영체제는 사용자가 컴퓨터를 사용하기 위해 필요한 시스템 소프트웨어
  • 우리가 일반적으로 컴퓨터를 사용하면서 모든 프로그램들은 운영체제에서 관리하고 제어 한다고 보면 됨
    • ex) Windows, Linux, Mac OS, iOS 등

목적

1. 컴퓨터 시스템의 효율적 운영 (하드웨어 관리도 포함)

  • 하드웨어를 잘 제어하고 관리하여 시스템 자원을 효율적으로 활용하기 위함
  • 컴퓨터 시스템? (4계층 구조)
    • 사용자 ↔ 응용 프로그램 ↔ 운영체제 ↔ 하드웨어
  • 하드웨어란 : 실제 물리적인 장치
    • CPU, 메모리, 디스크, 키보드, 마우스, 모니터 등
    • 하드웨어 자원을 운영체제가 적절히 배분하고, 충돌 없이 관리
    • → 운영체제의 성능이 컴퓨터의 전체 성능과 관계가 크다고 볼 수 있음!

2. 사용자에게 편의를 제공하는 목적

  • 하드웨어나 복잡한 시스템 구조를 몰라도 응용 프로그램만 사용해서 컴퓨터를 쉽게 조작

- 그림처럼 사용자는 그냥 멜론만 클릭해서 사용하면 운영체제가 알아서 하드웨어를 관리하여 쉽게 사용할 수 있도록 해줌!

 

 

핵심 역할

1. 프로세스 관리

  • 실행 중인 프로그램(프로세스)을 생성, 스케줄링, 종료 하는 역할
  • 운영체제는 CPU를 누구에게 얼마나 줄지 결정
  • 여러 작업을 동시에 진행할 수 있게 보이게 만들어 줌 → 이걸 스케줄링이라고 함
    • 멜론 앱으로 음악, 크롬으로 검색, vscode로 코딩-> 우선순위랑 상태, 요청 자원등을 보고 CPU가 계속 재분배 해줌!!
    • → 이 모든 프로세스가 동시에 돌아가도록 CPU 시간 분배

2. 메모리 관리

  • RAM을 효율적으로 나누고 보호
    • RAM은 일시적으로 저장하는 휘발성 메모리! → 컴퓨터 끄면 저장한거 사라짐 ㅠ
  • 여러 프로세스가 동시에 안정적으로 실행하게 끔 도와줌!
    • 멜론 앱과 크롬이 동시에 실행 되지만 메모리 충돌이 일어나지 않게 해줌

3. 파일 시스템 관리

  • 데이터를 파일 단위로 저장, 조회, 삭제할 수 있게 쉽게 만듬
  • 저장 장치에서의 데이터 관리, 접근 권한 제어 등의 기능 제공
    • 파일 탐색기에서 이름 검색하면 쉽게 찾는 것 처럼!

4. 입출력 장치 관리

  • 사용자가 키보드, 마우스 등으로 조작 하면 알아서 운영체제가 중간에서 처리 해줌!
    • 장치 드라이버를 통해 대신 처리해줌!
    • 키보드르 눌렀을 때 화면에 글자 뜨는 순서
    • → 키보드 입력 → 운영체제가 읽음 → 문자 처리 후 모니터 출력

그 외의 역할

5. 네트워크 관리

  • 운영체제는 컴퓨터가 다른 컴퓨터들과 네트워크를 통해 통신할 수 있도록 지원
  • 네트워크 장비와의 연결을 관리하고, 데이터 전송의 흐름 제어, 오류 처리, 보안 설정 등을 수행

예시

  • IP 주소 설정, 포트 제어, 네트워크 인터페이스 관리
  • 네트워크 연결 상태 확인 (ping, netstat)
  • 서버에서 수신한 요청 처리 및 전송 제어

6. 보조 스토리지 관리

  • 스토리지 할당, 여유 공간 관리, 디스크 스케줄링
  • 하드디스크(HDD), SSD, USB 등 영구 저장 장치를 효율적으로 관리함
  • 운영체제가 직접 공간을 할당하고, 빈 공간을 추적하며, 디스크 스케줄링 알고리즘으로 성능 최적화

예시

  • 디스크 읽기/쓰기 요청을 스케줄링 (FCFS, SSTF 등)
  • 파티션 관리, 저장 용량 확인, 파일 삭제 후 공간 회수 등

7. 보안 관리

  • 시스템 보호 및 오류로 인한 시스템 손상 방지
  • 외부 침입, 악성 코드, 권한 없는 접근으로부터 시스템을 보호함
  • 사용자 권한과 접근 제어, 암호화, 방화벽 설정 등을 포함

예시

  • 리눅스의 chmod, sudo 명령어로 파일 권한 설정
  • 시스템 로그인 시 사용자 인증 (ID/PW 확인)
  • 안티바이러스, 방화벽, SELinux 같은 보안 모듈

8. 명령어 해석 시스템

  • 사용자와 시스템 간의 인터페이스, 인터프리터, 쉘 등
  • 사용자가 입력한 텍스트 명령어를 해석해서 실행하는 인터페이스
  • *쉘(Shell)**이 대표적인 명령어 해석 시스템으로, 사용자와 커널 사이의 인터페이스 역할

예시

  • 리눅스의 bash, zsh, Windows의 cmd, PowerShell
  • 사용자가 ls, cd, mkdir 같은 명령어 입력 → 커널에게 전달되어 실제 동작 수행
반응형

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

(OS) 스레드  (0) 2025.05.01
(OS) 프로세스 (3)  (0) 2025.05.01
(OS) 프로세스 (2)  (0) 2025.05.01
(OS) 프로세스 (1)  (0) 2025.05.01
(OS) 커널과 쉘  (0) 2025.05.01