STUDY/운영체제(7)
-
[운영체제] 멀티 스레드 모델
해당 글은 '쉽게 배우는 운영체제' 서적을 기반으로 작성되었습니다. [멀티 스레드 모델]프로세스가 커널 프로세스와 사용자 프로세스로 나뉘듯 스레드도 커널 스레드와 사용자 스레드가 있다.커널 스레드 : 커널이 직접 생성하고 관리하는 스레드이다.사용자 스레드 : 라이브러리에 의해 구현된 일반적인 스레드이다.사용자 스레드가 커널 스레드를 사용하려면 시스템 호출로 커널 기능을 이용해야 한다. 이때 커널 스레드와 사용자 스레드의 대응 방식에 따라 다음과 같이 분류된다. 사용자 레벨 스레드사용자 레벨 스레드는 운영체제가 멀티스레드를 지원하지 않을 때 사용하던 방법으로 초기의 스레드 시스템에서 이용되었다. 이스레드는 사용자 레벨에서 스레드를 구현하기 때문에 관련 라이브러리를 사용하여 구현하며, 라이브러리는 커널이 지..
2024.12.13 -
[운영체제] fork() 시스템 호출, exec() 시스템 호출
이 글은 '쉽게 배우는 운영체제' 서적을 기반하여 작성되었습니다. 프로세스는 프로그램을 실행할 때 새로 생성된다. 프로세스는 새로 생성하는 방법뿐만 아니라 실행 중인 프로세스로부터 새로운 프로세스를 복사하는 방법도 있다. fork() 시스템 호출의 개념 fork() 시스템 호출은 실행 중인 프로세스로부터 새로운 프로세스를 복사하는 함수이다. 커널에서 제공하는 이 프로세스는 복사하는 일종의 시스템 호출이다. fork() 시스템 호출을 사용하면 실행 중인 프로세스와 똑같은 프로세스가 하나 더 만들어 진다. 이를 통해 처음 프로세스를 실행하는 속도보다 빠르게 실행할 수 있다.예를 들어 구글의 웹 브라우저인 크롬에서 어떤 페이지를 보다가 ctrl + n 키를 누르면 크롬이 하나더 실행된다. 이는 새로운 크롬을..
2024.12.12 -
[운영체제] 프로세스와 쓰레드
이 글은 '쉽게 배우는 운영체제' 서적을 바탕으로 작성되었습니다.지난 포스팅에서 운영체제에 대해 공부했었다. 이어서 보면 좋을거같다https://chlee200530.tistory.com/147?category=1073541 [Process]프로세스의 정의프로그램은 저장장치에 저장되어 있는 정적인 상태이고, 프로세스는 실행을 위해 메모리에 올라온 동적인 상태를 말한다.오늘날 운영체제는 대부분 시분할 방식을 사용하고 있기 때문에 프로세스가 여러 상태(프로세스 상태)를 오가며 실행된다. 운영체제가 여러 프로세스를 실행하기 위한 주문서 즉 프로세스 제어 블록(PCB)를 통해 프로세스간 문맥 교환을 이룬다.결론적으로 어떤 프로그램이 프로세스가 되었다는 것은 운영체제로부터 프로세스 제어 블록을 받았다는 의미이다...
2024.12.12 -
[운영체제] CPU 스케줄링
[스케쥴링]*스케쥴링이 필요한 이유?OS의 정의를 컴퓨터의 성능을 높이고 사용자에게 편의성을 제공하는 목적을 가지고 컴퓨터 하드웨어 관리하는 프로그램이라고 정의할 수 있다. 따라서 OS는 실행 대기중인 프로세스들에게 자원 배정을 적절히 하여 시스템의 성능을 끌어올릴 수 있어야한다.*스케쥴링을 고민해줘야하는 상태 변화에는 어떤 것들이 있을까?running -> waitingrunning -> readywaiting -> readyterminate*스케쥴링의 여러방식FCFS(FIFO) : 먼저 들어온 순서대로 실행SJF :실행시간이 가장 짧은것 부터 실행시키는 방식이다. 대기 시간이 짧다는 장점이 있다.SRTF: 선점형 SJF방식이라 생각하면 좋다.Round Robin :각 프로세스에서 정해진 시간만큼 할당..
2024.12.11 -
[운영체제] OS, 운영체제란 무엇인가
이 글은 '쉽게 배우는 운영체제' 서적을 기반하여 각종 블로그에서 추가적은 정보를 얻어 작성되었습니다.[운영체제의 정의]소프트웨어를 잘 알지못하는 사람도 '운영체제'라는 말은 한 번쯤 들어봤을 것이다. 간략하게 'OS(Operating System'라고도 일컫는 운영체제는 일반 컴퓨터나 노트북의 전원을 켜면 가장 먼저 만나게 되는 소프트웨어로 대표적으로 윈도우나 Mac OS, 유닉스, 리눅스 등이 있다. 운영체제의 필요성초기의 컴퓨터는 정해진 계산만 수행했기 때문에 특별한 사용 규칙이 필요없었다. 그러나 메모리 CPU등의 성능이 향상되고, 여러 작업을 동시에 할수 있는 컴퓨터 환경이 조성되면서 사용 규칙이 필요해졌다. 복잡한 작업 환경에 규칙이 없으면 기계를 망가뜨릴 수 도 있지 않겠는가? 이를 위해 등..
2024.12.11 -
[운영체제] 교착상태, deadlock
[Deadlock] *데드락의 발생조건 상호 배제 : 한 자원은 한 번에 한 스레드(혹은 프로세스)만이 사용할 수 있어야한다. 점유 대기 : 이미 한 자원이 할당되어 있다면 이를 점유하기 위해 대기하는 프로세스가 있어야한다. 비선점 : 다른 프로세스가 점유하고 있는 자원을 강제로 뺏을 수 없다. 순환 대기 : 각 프로세스가 서로 점유하고 있는 자원을 요구해야 한다. -> 순환구조여야함 데드락이 발생했을 경우 이를 해결하기 위해 크게 4가지 방법이 있다. (예방, 회피, 탐지 및 회복, 무시) 데드락 예방 : 교착 상태 발생 조건 중 하나를 제거함으로써 해결하는 방법 상호 배제 부정 : 여러 프로세스가 공유 자원을 사용할 수 있도록 함 점유 대기 부정 : 프로세스 실행에 필요한 자원을 한꺼번에 모두 할당함..
2022.07.04