운영체제

    프로세스(Process)와 스레드(Thread)

    프로세스 (Process) 정의 운영체제로부터 자원을 할당받는 작업의 단위 메모리에 올라와 실행되고 있는 프로그램의 단위 특징 프로세스는 각각 독립된 메모리 영역을 할당 받는다. (Code, Data, Stack, Heap으로 구성) 각 프로세스는 다른 프로세스의 메모리 영역에 접근할 수 없다. (접근하려면 통신(IPC)을 사용해야한다.) 스레드 (Thread) 정의 프로세스가 할당받은 자원을 이용하는 실행의 단위 특징 스레드는 프로세스 내에서 Stack만 따로 할당받고 나머지 자원들(주소 공간, Code, Data, Heap 영역 등)은 서로 공유한다. 각각의 스레드끼리 힙 메모리를 서로 읽고 쓸 수 있다. 멀티 프로세스와 멀티 스레드의 차이 멀티 프로세스 정의 하나의 응용프로그램을 여러 개의 프로세스..

    [Linux] 리눅스 부팅 과정, 리눅스 런 레벨(Runlevel)

    [Linux] 리눅스 부팅 과정, 리눅스 런 레벨(Runlevel)

    Linux 부팅 과정은 크게 5단계로 나눌 수 있다. 0단계: 시스템 전원 공급 1단계: BIOS 단계 2단계: 부트로드 단계 3단계: 커널 단계 4단계: init 프로세스 단계 다음에서 각 단계의 세부 프로세스를 정리해보려고 한다. 리눅스 부팅 과정 0단계: 시스템 전원 공급 - 먼저 시스템에 전원을 켠다. - 시스템 전원 공급과 함께 BIOS(Basic Input Output System) 프로그램이 메모리의 특정 번지에 자동으로 로드된다. (CPU는 전원 공급과 함께 특정 번지의 BIOS 프로그램을 자동 실행한다.) 1단계: BIOS 단계 *BIOS: 운영체제 중 가장 기본적인 소프트웨어. 컴퓨터의 입출력을 처리하는 펌웨어 - POST(Power On Self Test; 자체진단기능)를 통해 하드웨..

    5-1 CPU Scheduling (Concepts)

    Basic Concepts - 멀티프로그래밍을 통해 최대 CPU 활용률을 얻을 수 있다. (time sharing 기반) - 멀티프로그래밍은 job을 organaze하여 CPU가 항상 돌아가도록 한다. - CPU Burst 와 I/O Burst를 적절히 분배해야 CPU 효율성이 올라간다. CPU Scheduler (Algorithm) 1) Switches from running to waiting state (e.g., I/O request) 2) Switches from running to ready state (e.g., interrupt) 3) Switches from waiting to ready (e.g., I/O completion) 4) Terminates -> Scheduling under..

    4 Thread

    Thread - Basic unit of CPU utilization(효율성) - 같은 process내에서의 thread끼리는 자원을 공유한다 (code section, data section 등) - 자원 공유의 Benefits 1. Responsiveness(반응성) : process를 여러 스레드로 나누면 process의 일부가 block 되어도 다른 스레드로 동작 가능하다. 2. Resource sharing(자원 공유) : 효율은 높이고, 메모리 낭비는 줄인다. 3. Economy(경제적 측면) : context-switch time (PCB정보 업데이트 시간)이 소모되지 않음. 4. Scalability(확장성) : multiprocessor 구조의 이점 - Multithread process..

    3-3 IPC

    - 프로세스는 independent 하거나 cooperating 할 수 있다. - Cooperating processing의 장점 1. information sharing 정보공유 2. computation speed-up 시간 절약 3. modularity 기능화 (task를 나눔) 4. convenience 편리성 - Cooperating process를 하려면 interprocess communication(IPC)가 필요하다. IPC 모델 1. Shared memory : 프로세스들이 사용자 memory 영역을 공유한다 (OS가 관여하지 않음) 2. Message passing : 프로세스들이 kernel memory 영역을 공유한다 수 있다. 1. Shared memory - producer와 ..

    3-2 Process Scheduling

    - CPU 활용도를 극대화하기 위해 process scheduling을 한다. - process scheduling 대기열 관리 1. Job queue : 시스템 전체의 process들을 저장하는 queue 2. Ready queue : Main Memory에 저장되어 CPU에 실행되기 위해 기다리는 queue 3. Device queue : I/O process를 저장하기 위한 queue - Queueing diagram ppt 3쪽 Scheduler 종류 1. Long-term scheduler (or Job Scheduler) - 수행해야 할 잡 풀(job pool)로부터 프로세스를 선별하고 실행하기 위해 메모리에 적재한다. - job queue에서 ready queue에 적재하는 스케줄러이다. 이..

    Ubuntu root권한 얻기

    Ubuntu에는 일반사용자와 root가 나뉘어 있다고 한다. 일반사용자는 말 그대로 사용?만 가능하고 root권한을 가지고 있어야 파일을 고치고 할 수 있는듯! Ubuntu에서 root권한 얻는법 : 1. 사용자이름@사용자이름-VirtualBox:~$ 2. 사용자이름@사용자이름-VirtualBox:~$ su (su는 명령어이다) 3. 암호 : (내 암호 쳐주기, 이때 암호는 사용자에게 보이지 않는다) 3. root@사용자이름-VirtualBox:/home/사용자이름# 으로 바뀌어있음! 볼드처리한건 컴퓨터에 뜨는 글이고 파란색 글은 내가 직접치는 명령어다!