
08. Threads (2)
2020. 4. 23. 17:23
🚦 Server/Operating System
Pthread (POSIX thread) : 병렬적으로 작동하는 소프트웨어의 작성을 위해서 제공되는 표준 API이다. 즉 쓰레드를 편하게 만들 수 있도록 도와주는 API이다. Multithreading model User thread Kernel 영역 위, User space에서 동작하는 thread User thread가 작동하기 위해서는 Kernel thread와의 매핑이 이루어져야 한다. 즉 User thread는 Kernel thread를 통해서 프로세서를 사용할 수 있다. Kernel thread Kernel 영역에서 동작하는 쓰레드 운영체제가 Kernel 영역에서 쓰레드를 생성 및 관리한다. 운영체제가 스케줄링하는 Thread 단위는 Kernel thread이다. **** CPU 스케줄링에서 ..

07. Threads (1)
2020. 4. 21. 12:48
🚦 Server/Operating System
Thread 하나의 프로세스에는 하나의 control만 존재하기 때문에 프로세스는 한번에 하나의 일만 처리할 수 있다. 그러나 쓰레드를 사용함으로써 Parallelism하게 사용할 수 있다. 프로세스와 마친가지로 스케줄링 단위(Excution Unit)이다. 프로세스보다 더 작은 단위이다. 프로세스로부터 Excution state를 뽑아내서 만든다. 프로세스의 Code 영역, Data 영역, Heap 영역은 thread 간에 공유된다. 하지만 Stack은 쓰레드 각자 따로 있다. 상대 Stack을 읽을 순 있다. 쓰레드끼리는 IPC없이 통신할 수 있다. 같은 Address space를 공유한다. 쓰레드끼리는 같은 메모리를 사용하므로 switch 비용이 적다. Process들은 각자 자기의 Thread를 ..

06. Inter-Process Communication
2020. 4. 14. 11:02
🚦 Server/Operating System
IPC : 프로세스들 간의 데이터 및 정보를 주고 받기 위한 메커니즘 커널에서 IPC를 위한 도구를 제공하며, System call 의 형태로 프로세스에게 제공된다. IPC에는 두가지 모델이 있다. Shared Memory Message Passing Shared Memory : 운영체제야 단톡방 파줘! 두개 이상의 프로세스들이 주소 공간의 일부를 공유하며, Read, Wirte를 통해 통신을 수행한다. Shared Memory가 설정되면 커널의 관여없이 진행된다. 장점 : 운영체제의 관여없이, 커널의 관여없이 메모리를 직접 사용하여 속도가 빠르다. 단점 : 여러 프로세스가 사용하므로 구현이 어렵고 관리가 힘들다. (부록) IPC를 많이한다고 context switching이 많이 일어나진 않는다. (부..

Linux - Shell
2020. 4. 8. 22:01
🚦 Server/Linux
쉘이란? (Shell) : 커널을 제어할 수 없기 때문에, 사람이 이해하기 쉬운 명령어를 쉘에 해당되는 프로그램들이 해석해서 전달해주는 것 → 사용자가 입력한 명령을 해석하는 프로그램 → 몇가지 종류의 쉘을 사용할 수 있다. bash vs zsh echo $0 을 치면 무엇을 쓰는지 알 수 있다. bash, zsh : shell 중에서 쉘이라는 카테고리중 하나인 bash라는 제품과 zsh이라는 제품이다. pwd 치면 현재 위치 확인 가능 유저가 키보드를 통해서 명령을 내리면 쉘이 받아서 커널을 통해 작업을 처리하고 그 결과를 쉘이 받은 다음에 Standard ouput으로 출력하거나 사용자와 상호작용 하는 소프트웨어를 Shell 이라고 한다.

05. Processes
2020. 4. 6. 18:09
🚦 Server/Operating System
프로세스 : 프로그램을 실행하면 객체화, 실체화되는 것 프로그램 : .exe 파일로 존재하며, 해당하는 클래스를 malloc을 통해 만들어진 것이 프로세스이다. 프로그램을 깔면 디스크로 간다. 프로그램을 실행시키면 인스턴스화 되어서 로딩이 되면 메모리를 차지한다. (프로그램은 메모리를 잡아먹지 않는다) 같은 프로그램을 여러번 시키면 별도의 프로세스가 작동한다. 섹션이 같을지라도 Data, Heap, Stack은 다를 수 있다. 프로세스의 구성 (4가지 Address Space) Program Counter Data Section : containing global variable Code Data Stack : containg temporary data Heap : containg memory dynam..

04. Operating System Structures (2)
2020. 3. 30. 16:23
🚦 Server/Operating System
운영체제 종류 MS-DOS : Single structure UNIX : Monolithic Layered Approach : Abstraction based Mach : Micro Kernel MS-DOS : Single structure System이 켜지면 Command Interpreter인 Shell 이 켜진다. user mode, kernel mode가 없다. application program이 kernel에 직접 접근이 가능하다. Layered Approach : OS 복잡도를 낮추기 위한 방안 자기 바로 위 아래 레이어들만 interaction 할 수 있다. 제일 바깥쪽 = Layer N = User interface 제일 안쪽 = Layer 0 = Hardware 장점 : Layer의 ..

03. Operating System Structures (1)
2020. 3. 25. 14:52
🚦 Server/Operating System
★★★★★★★ Basic Input Output System 전원이 켜지면 CPU는 부트스트랩 프로그램인 Basic Input Output System 을 실행한다. Boot Strap Program이 실행이 되면 시스템을 초기화한다. BIOS에 시스템 주변 장치들을 초기화하는 코드가 들어있다. 초기화가 끝나면 운영체제가 로딩한다. 운영체제는 Boot Loader를 통해 로딩한다. 운영체제 디자인 Policy : 뭐가 수행되어야 되냐? Mechanism : 어떻게 수행할까? Mechanism을 잘 구현해 놓으면 다양한 Policy를 설정할 수 있다. Policy에 맞는 Mechanism을 사용하면 된다. CPU scheduler Policy (what) 스케줄링 알고리즘 (FIFO, SJF 등) Quan..

02. System Call
2020. 3. 23. 16:06
🚦 Server/Operating System
Quiz CPU operates in ( ) and ( ). ( ) allows to distinguish on which mode system is running. Some ( ) are only excutable in the kernel mode. May generate an ( ) if and application tries to run a privileged instruction in user mode. Exception : ( )= expected, intended ( ) = unexpected ( ) : Programming interface to the services provided by the OS. Mostly accessed by programs via a high-level ( ) ..

Programming Assignment 0
2020. 3. 18. 12:00
🚦 Server/Operating System
파일 이름 pa0.c로 해라 리눅스에서 되는거만 인정 pdf 한장으로 제출. 이름 학번 넣을 필요 X ICT332 Operating Systems (Spring 2020) Project #0: Implementing a Command Line Parser Due on the end of March 29 (Sunday) (23:59:59) Introduction The purpose of this project is to bootstrap the term project to implement a shell program, and to get familiar with the programming assignment submission system. 이 프로젝트의 목적은 셸 프로그램을 구현하기 위한 용어 프로..

01. Introduction to OS
2020. 3. 18. 11:35
🚦 Server/Operating System
Quiz The operating system ( ) the system and ( ) applications. ( ) : Stored-program computer model ( ) : Each processor is assigned a specific task. ( ) : Each processor performs all tasks Each ( ) is in charge of a particular device type. Each device controller has a ( ). CPU and DC move data from/to main memory to/from ( ). Device controller notifies CPU of events by generating an ( ). ( ) = A..
00. Welcome aboard ICT332
2020. 3. 16. 22:30
🚦 Server/Operating System
운영체제란 과목은 프로그래밍 실력을 요구하는 과목이다. 이 과목을 들으려면 C언어를 할 줄 알아야 한다. 출석 10 과제 20 중간 30 기말 40 결석 2번 가능 virtual 까지만 나갈 것 공부한만큼 받아가라