# TIL 웹개발 - CS 기초 지식

![Image](https://upload.cafenono.com/image/slashpagePost/20240725/205553_hYdaTMqzI9vUg4DHIN?q=80&s=1280x180&t=outside&f=webp)

1. 메인보드

컴퓨터 본체 내부에 위치한, 주회로가 내장된 보드이다.

2. CPU (Central Processing Unit)

- 컴퓨터의 두뇌 역할을 하는 실질적으로 모든 기능을 수행하는 요소

- 입력을 받은 명령을 해석/연산 한 후에 결과값을 출력장치로 전달하는 컴퓨터의 주요 부품

3. GPU (Graphic Processing Unit)

- 병렬 연산에 특화되어 이전에는 3D 그래픽을 처리하는데 많이 사용했지만 현재는 범용적으로 사용된다.

4. 주기억장치 (RAM)

휘발성 메모리로 컴퓨터를 껏다 키면 메모리가 사라진다. 

- DRAM

- SRAM

5. 보조기억장치

비휘발성 메모리로 컴퓨터를 껐카 켜도 메모리가 사라지지 않는다.

- HDD : 물리적인 보조기억장치

- SSD : 반도체에 전기 신호를 이용하여 데이터를 적재하는 보조기억장치

6. OS

운영체제란 사용자가 컴퓨터를 조작 및 제어하고 작업의 편의성을 제공하기 위한 '시스템 소프트웨어'입니다. 

- 운영체제의 목적

    - 처리능력 : 일정 시간내에 시스템이 처리하는 작업량

    - 반환 시간: 작업을 완료할때까지 걸린 시간

    - 사용가능도: 요청이 있을 때 즉시 사용가능한 정도

    - 신뢰도 : 주어진 요청을 정확하게 해결하는 정도

- 운영체제 주요 자원 관리

    - 프로세스 관리 : 실행되는 프록르ㅐㅁ을 관리합니다.

    - 기억자이 관리: 프로세스에게 할당된 메모리를 관리합니다.

    - 주변장치 관리: 입출력 장치 관리

    - 파일 관리: 파일의 생성과 삭제, 변경, 유지관리

- 다양한 운영체제

    - windows

    - mac OS

    - linux

    - IOS

    - andorid

7. 반드시 알아야할 개념

- 프로세스 : 메모리상 실행중인 프로그램을 의미, 최소 하나의 스레드를 보유하며 별도의 주소공간을 독립적으로 할당받는다.

- 프로세싱: 프로그램이 실행중인 것

- 쓰레드: 프로세스 내에 하나의 실행 단위.

- 멀티테스킹: 하나의 시스템 또는 cpu가 여러 작업을 수행하는 것

- 멀티프로세싱: 두 개 이상의 프로세스가 동시에 실행되는 것

- 멀티쓰레드: 하나의 프로세스가 여러 작업 단위를 가지며 작업을 수행하는 것. 멀티스레드로 작업시 멀티 프로세스보다 공유하는 통신비용이 적고 프로세스 생성 후 자원을 할당하는 시스템 콜이 감소할 수 있기에 더 효율적이다. 

- 스케쥴링: 작업에 필요한 자원을 언제 누가 어떻게 사용할지 결정해주느 ㄴ것

- 커널: 하드웨어와 응용 프로그램 사이에서 인터페이스 역할 수행하기 위한 핵심 부분

- 터미널: 사용자와 컴퓨터 간에 상호작용을 제공하는 인터페이스

- CUI : 사용자가 문자를 통해 명령을 수행하는 것

- GUI: 사용자가 그래픽을 통해 명령을 수행하는 것

For the site tree, see the [root Markdown](https://slashpage.com/kyugntae-ai.md).
