[CS] 컴퓨터 구조와 운영체제 + DB

개발냥이·2025년 6월 13일

데브코스

목록 보기
72/75
post-thumbnail

컴퓨터 구조와 운영체제

  • 컴퓨터 구조 (아키텍처)

    • 하드웨어,소프트웨어 사이의 인터페이스 정의

    • 고수준 프로그래밍 언어 -> 어셈블리 -> 기계어의 변역 과정과 실행 모델

    • 컴퓨터 하드웨어의 구성

      • 중앙처리장치 : CPU

        • 제어장치 : 명령어를 해석하여 제어 신호 발생
        • ALU(산술논리연산장치) : 산술 및 논리 연산 등을 수행
        • 레지스터 : 연산의 대상 및 연산 결과 등을 저장
      • 주기억장치 : 메모리

      • 보조기억장치 : Storage

      • 입출력장치 : I/O 디바이스

    • 프로그램의 번역 단계

      • 원시 코드 -> 어셈블리 코드 -> 목적 코드
      • 원시 -> 어셈블리 : 프로그램밍 언어에 따라 다른 번역기
      • 어셈블리 -> 목적 : 어셈블러에 의하여 거의 1:1 번역
    • 프로그램 번역/실행의 2가지 모델

      • 컴파일러 : 코드가 실행되기 전 컴파일 과정을 거침 (TS)
      • 인터프리터 : 코드를 한줄씩 읽으면서 해석 후 즉시 실행 (JS)
  • 운영체제 OS

    • 컴퓨터 하드웨어 자원의 효율적 활용

    • 운영체제 : 컴퓨터 시스템이 살아가기 위하여 반드시 필요한 소프트웨어의 모음

      • 컴퓨터 시스템의 자원을 관리
      • 사용자에게 시스템 자원을 활용할 수 있는 기능을 제공
    • 운영체제의 분류

      • 범용 / 내장형
      • 단일 사용자 / 다중 사용자
      • 단일 프로세서 / 다중 프로세서
      • 시분할 방식 / 다중 프로그래밍
    • 운영체제의 역할

      • 컴퓨터 시스템의 자원을 관리
        • 프로세스 관리
        • 메모리 관리
        • 파일 시스템 관리
        • 입출력 장치 관리
    • 운영체제 커널

      • 운영체제의 핵심 부분에 위치하면서 시스템의 모든 측면에 완전한 권한을 가지고 있음
  • 프로세스

    • 컴퓨터 시스템에서 CPU 및 메모리를 이용하여 실행 중인 작업

    • 프로그램과 차이점 : 프로그램 : 실행 가능한 코드 / 프로세스 : 실행 중인 프로그램

    • 프로세스 관리

      • 운영체제가 관리
      • 운영체제는 각 프로세스의 상태를 유지관리하고 각 프로세스가 시스템 자원을 사용할 수 있도록 관리함
  • 프로세스와 스레드

    • 싱글 스레드 : 하나의 스레드에 한번의 작업만 진행
    • 멀티 스레드 : 하나의 스레드에 동시에 여러 작업을 진행
  • 스케줄링

    • 어느 순간 어느 작업을 수행할 것인지 결정
    • 효율성과 공정성 사이의 이해득실 관계가 중요
    • ex) FCFS(비선점) , LRU , LFU , SJF(비선점) , SRT(선점) ,RR(선점)
  • 메모리와 입출력 관리

    • 운영체제의 컴퓨팅 시스템 자원의 추상화

    • 운영체제의 추상화 : 하드웨어의 복잡한 동작을 간단하게 사용할 수 있도록 사용자와 개발자에게 숨기는 과정

    • 프로세스 : CPU 시간에 대한 추상화

    • 가상 메모리 : 메모리 공간에 대한 추상화

    • 메모리 계층 구조와 가상 메모리

      • 레지스터 , 캐시 메모리 , 주기억장치(메인 메모리) , 보조기억장치(스토리지)
      • 빠른접근속도 (레지스터~) , 낮은 비트당 비용 (보조기억장치~)
    • 가상메모리

      • 실제 메모리(RAM)보다 더 큰 메모리 공간을 사용할 수 있도록 운영체제가 디스크(스토리지)를 활용하여 메모리를 확장하는 기술

데이터베이스

  • 데이터의 저장과 인출 (검색)

    • 관계형 데이터베이스
    • 데이터 공유에 따른 문제와 해결책
  • 데이터베이스의 구성 요소

    • 개체와 그들이 가지는 속성, 그리고 개체 사이의 관계
  • 데이터베이스 장점

    • 데이터 중복 최소화
    • 데이터 무결성
    • 데이터 일관성
    • 데이터 독립성
    • 데이터 표준화
    • 데이터 보안 유지
  • 관계형 데이터베이스 Relational DB

https://github.com/kimnambin/jeongcheogi/blob/main/%ED%95%84%EA%B8%B0/%EA%B0%95%EC%9D%98/3.%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%EA%B5%AC%EC%B6%95.md
41번

- 키 : 한 튜플을 다른 튜플들과 구별하는 하나 이상의 속성의 집합
  - 참조 무결성 : 참조할 수 없는 외부키를 가질 수 없음
  - 개체 무결성 : 기본키에 속하는 속성은 비어 있을 수 없음

- 관계형 대수 연산
  - 릴레이션을 대상으로 릴레이션을 만들어 내는 `수학적 연산`의 집합
  - 합집합 , 교집합 , 차집합 , 곱집합 , 프로젝션 , 셀렉션 , 조인
  • SQL

    • INSERT , DELETE , UPDATE , SELECT
    • DDL(Creatr , Alter , Drop , Truncate) , DML(Select , Insert , Update , Delete) , DCL(Grant , Revoke) , TCL (Commit , Rollback , Savepint)
  • 트랜잭션

    • 데이터베이스 관리 시스템에서 상호작용의 단위
    • 트랜잭션이 가지는 속성 ACID
      • 원자성 : 하나의 트랜잭션은 모두 실행되거나 전혀 실행되지 않아야 함
      • 일관성 : 트랜잭션의 실행 전후에 데이터베이스 상태가 일관되어야 함
      • 독립성 : 여러 트랜잭션이 병렬 실행되는 경우에도 서로 간섭하지 않도록 격리되어야 함
      • 영구성 : 완료된 트랜잭션의 실행 결과는 데이터베이스에 영구 보존되어야 함
  • 데이터베이스 활용

    • ORM(옵젝 릴레이션 매핑) : 관계형 데이터베이스의 테이블과 객체지향 프로그램의 클래스 사이를 연결
      • 장점
        • SQL이 아닌 클래스의 메서드를 이용한 DB 접근 조작
        • 코드의 재사용성 , 유지보수가능성 , 리팩토링 용이성 향상
        • DBMS에 대한 종속성 감소
      • 한계점
        • 객체와 릴레이션 사이의 불일치에 기인하여 발생하는 비효율
  • 비정형 데이터 (사진 , 동영상 처럼 정리되지 않은 데이터)

    • 설계된 모델이나 구조로 구성되지 않은 데이터

    • 질적인 것으로 분류되어 인간 또는 기계에 의하여 생성됨

    • ex) 사물 인터넷 , 텍스트 데이터

    • 비정형 데이터 처리의 어려움

      • 방대한 볼륨 , 다양성 , 품질 , 보안 및 개인정보 보호 , 통합
    • 벡터 DB (비정형 데이터 관리를 위해 등장)

      • 데이터 객체를 수치화
  • NoSQL (Not Only SQL)

    • RDBMS와는 다른 방식으로 데이터를 저장하고 색인

    • 유연성 , 확장성 , 고성능

    • 종류

      • key-value
      • Document
      • Column-family
      • Graph
    • 활용

      • RDBMS를 대체할 것으로 예상하지 않음
      • ACID 트랜잭션의 지원이 필수가 아닌 시스템에서는 응용이 확대될 전망
      • 분산 데이터베이스로 고성능 서비스를 구축하는 데 적합
profile
웹 개발자가 되고픈

0개의 댓글