![[인프런워밍업클럽] 1주차 3기 CS 전공지식 미션 발자국](https://cdn.inflearn.com/public/files/blogs/71b496a5-5444-45fd-b8bb-e1bc3dd2e1cf/스크린샷 2025-03-09 오후 9.03.19.png)
[인프런워밍업클럽] 1주차 3기 CS 전공지식 미션 발자국
운영체제
운영체제 개요
프로세스 관리
메모리 관리
하드웨어 관리
운영체제의 역사
1940년도 애니악 : 미사일 탄도 계산, 전자 디지털 계산기, 속도 느림, 오래 걸림, 하드웨어 비용이 비쌈, 인건비 저렴
1950년도 초반 : 직접 회로(IC) 개발, 현재 컴퓨터 모양, 펀치카드로 → 프로그래밍 → 계산 결과
1950년도 중후반 : 오퍼레이터의 오버헤드가 너무 느려짐, 싱글스트림 배치시스템
입출력을 담당하는 i/o 디바이스 컨트롤러를 만들어 입출력중에도 cpu가 계산하도록 함
출력은 i/o 디바이스 컨트롤러를 이용해서 cpu와 분리가 가능하지만, cpu 성능이 떨어짐
1960년도 싱글스트림 배치시스템 성능 향상 → 시분할 시스템
파일시스템 등장
유닉스 운영체제 개발 → 프로그램을 동시에 여러 개 실행시키는 멀티 프로그래밍
프로그램과 프로세스
프로그램 : 하드디스크 등과 같은 저장장치에 저장된 명령문의 집합체, 컴퓨터 관점에서 하디디스크 즉, 저장장치 만 사용하는 수동적인 존재
ex) 앱, .exe
프로세스 : 실행중인 프로그램, 메모리도 사용, 운영체제의 CPU스케줄링 알고리즘에 따라서 CPU도 사용, 필요에 따라 입력과 출력을 하기 때문에 능동적인 존재
프로세스의 구조? 코드영역, 데이터 영역, 스택 영역, 킵 영역
코드 영역 : 자신을 실행하는 코드가 저장
데이터영역 : 전역 변수와 스태틱 변수가 저장
스택 영역에서는 지역변수와 함수 호출을 했을 때 필요한 정보들이 저장
힙 영역은 프로그래머가 동적으로 메모리를 할당하는데 사용
실행중인 프로그램 : 하드디스크에 저장된 프로그램이 메모리에 올라갔을 떄 실행중인 프로그램 → 스레드
멀티프로그래밍과 멀티프로세싱
멀티프로그래밍 : CPU가 프로세스를 실행하다가 I.O 작업을 만나면 해당 프로세스에서 발생한 I.O 작업은 기다리면서 다른 프로세스를 실행 → CPU가 쉬는 시간이 적어져 효율성이 높아짐
멀티프로세싱 : 멀티프로세서로 작업을 처리하는 것
멀티프로세서란?
모든 프로세스를 동시에 실행시키는 것처럼 느끼게 하는 기술을 멀티 태스킹
여기서 CPU를 한개가 아니라 여러개를 이용할 수 있는데 CPU가 여러개 있다면 이를 멀티프로세서라고 함
PCB
운영체제는 여러 개의 프로세스를 전부 다 관리, 공평하게 실행
프로세스가 만들어지면 운영체제는 해당 프로세스의 정보를 가지고 있는 PCB를 만들고 저장
컨텍스트 스위칭
프로세스를 실행하는 중에 다른 프로세스를 실행하기 위해 실행중인 프로세스 상태를 저장하고 다른 프로세스의 상태 값으로 교체하는 작업
발생하는 이유?
CPU 점유시간이 다 되거나 입출력 요청이 있거나 다른 종류의 인터럽트가 있을 때 발생
자료구조와 알고리즘
자료구조와 알고리즘이란?
자료구조 : 데이터가 어떤 구조로 저장, 사용 되는지를 나타냄
예) 변수, 배열
알고리즘 : 어떤 문제를 해결하기 위한 확실한 방법, 자료구조에 따라 알고리즘이 변경 되기도 함
시간복잡도란?
특정 알고리즘이 어떤 문제를 해결하는데 걸리는 시간
사용자마다 컴퓨터 사양이 다르기 때문
같은 알고리즘이라도 성능이 좋지 않은 컴퓨터와 성능이 좋은 컴퓨터의 실행시간이 다르기 때문에
배열이란?
일반적인 배열 : 기본적으로 제공되는 배열, 읽기, 쓰기에 좋음, 삽입, 삭제는 좋지 않음
자바스크립트 배열 : 상황에 따라서 연속적, 불연속적으로 메모리 할당하지만 대부분 불연속적으로 할당
연결리스트란?
저장하려는 데이터들을 메모리 공간의 분산에 할당, 이 데이터들을 서로 연결 시켜줌
스택이란?
먼저 들어간 데이터가 나중에 나오는 규칙
큐란?
먼저 들어간 데이터가 먼저 나오는 규칙
덱이란?
데이터의 삽입과 제거를 헤드와 테일 두 군데서 자유롭게 할 수 있음
해시테이블이란?
해시와 테이블이 합쳐진 자료구조
빠른 데이터 탐색, 삽입, 삭제
셋이란?
데이터의 중복을 허용하지 않는 자료구조
회고
자료구조와 알고리즘 부분이 많이 부족해서 겁을 많이 먹고 있었고, 강의를 듣고 복습을 많이 못한 것 같아서 아쉬웠다.
다음주는 진도표 대로 나가면서 1주차에 부족했던 부분들을 따로 복습할 예정이다
미션 해결 과정
미션을 받고 다시 개념들을 정리하는 시간들을 가졌다
막상 강의를 들을 때는 아~ 이렇게 되는구나 라고 생각이 되지만
시간이 지나고 문제를 봤을 때 기억이 잘 나지 않아서
미션을 보고 그 부분을 다시 들으면서 미션을 해결해 나갔다.
아직 많이 부족하지만 좀 더 열심히 해야 겠다는 생각이 들었다.
댓글을 작성해보세요.