inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

인프런 워밍업 클럽 - CS Day 9

Taeho
0

Algorithm

참고 : https://visualgo.net/en/sorting

Bubble Sort

과정

시간 복잡도

장점

단점

Selection Sort

과정

시간 복잡도

장점

단점


OS

Programming Language

프로세스의 영역

image

Compile 언어가 Process가 되는 방법

image

  1. 개발자가 코드 작성

  2. 전처리 단계 실행

    • 개발자가 작성한 코드를 확인하고 전처리 구문을 처리한다.

    • C에서는 #이라는 키워드로 선언된다.
      ex) #include<stdio.h>, #define MY_NUMBER 100

    • 코드에 있는 모든 주석은 삭제된다.

    • 결과물로 .i 파일이 생성된다.

  3. 전처리기에서 나온 결과파일을 컴파일러가 처리한다.

    • 컴파일러는 .i 파일을 기계어에 가까운 어셈블리어로 변환시킨다.

    • 결과물로 .s 파일이 생성된다.

  4. 어셈블러 작업이 수행된다.

    • 오브젝트 파일.o로 변환된다.

    • 오브젝트 파일은 0과 1로 구성되어 있다.

    • 코드영역과 데이터 영역이 나뉘어져 있다.

  5. 링커 작업이 수행된다.

    • 모든 오브젝트 파일을 하나의 코드 영역과 데이터 영역으로 묶어준다.

    • 실제로 실행될 주소를 매핑시켜준다.

    • 결과물로 .exe 파일이 생성된다.

  6. 사용자가 .exe파일을 실행시키면 OS가 프로세스를 생성한다.

    • OS는 파일에 있는 코드 영역과 데이터 영역을 가져와 프로세스의 코드 영역과 데이터 영역에 넣어주고, 빈 상태의 스택과 힙을 할당한다.

    • PCB를 만들어 프로세스를 관리가 가능하게 한다.

    • PC(프로그램 카운터)에 다음 실행할 명령어의 주소를 생성한 프로세스의 코드영역의 첫번째 주소로 설정한다.
      → OS의 CPU 스케줄링에 따라서 프로세스가 실행되다가 작업을 마친다.

메모리 종류

image

레지스터

캐시

보조 저장장치(HDD, SSD)

메인 메모리

32bit CPU, 64bit CPU

물리 주소 & 논리 주소

경계 레지스터

절대 주소 & 상대 주소

재배치 레지스터

메모리 할당 방식

메모리 오버레이

Swap

가변 분할 방식(= Segmentation, 세그멘테이션)

장점

단점

고정 분할 방식(= Paging, 페이징)

장점

단점

내부 단편화

외부 단편화

조각모음

버디 시스템

장점

알고리즘 · 자료구조 워밍업클럽 CS전공지식 DAY9

답변 0