kernel의 동작에 대한 질문입니다. 열심히 하겠습니다!!

leopon의 이미지

os를 막 공부하려는 학생입니다.
무작정 하는 감이 없지 않은 공부 스타일 때문에
기본이 될 수 도 있는 부분에 대한 지식도 부족하내요..
kernel이 뜬 상태에서부터 공부를 시작하다가
문제에 봉착했는데.. 그렇다면 첫! Thread는 어떤 방식으로
register들과 memory에 load되나요? 하드웨어가 지원해 준다면
어떠한 방식으로 지원해 주는지요?

그리고 제가 공부하는 os에서는 system call이 발생하면 interrupt를 disable시키고 다시 user mode로
넘어갈때 enable시켜주던데.. 도저히 그 일을 해주는 부분을 못찾겠어요^^;;
힌트 정도만 얻어도 행복 할 것 같습니다.^^ 아 같은 맥락에 일단 첫 thread가 뜨고 나면
필요한 Thread들을 생성하는데 이 쓰래드들을 생성할때 eflag를 0으로 set하게 되는데..
드디어! scheduler가 돌기 시작해서 만들어져서 run queue에서 대기중이던 thread를 돌리고 있던중
timer inturrupt가 발생하고 scheduler가 돌아야 하는데......... 생성할때 disable하게 만들었는데..
인터럽트를 받을 수 있나요? 있다고 생각해서 eflag를 다시바꿔주는 부분을 찾아보려 하였으나.....
못찾았습니다 ㅠ.ㅠ 이부분도 힌트만이라도 행복할꺼에요^^

yeilho의 이미지

시스템 콜 질문관련하여 혹시 cli() 하고 sti() 말씀하시는건가요?

/usr/src/linux/arch/i386/kernel/entry.S

268         ENTRY(sysenter_entry)
 
 
321         call *sys_call_table(,%eax,4)
 
323         cli
324         TRACE_IRQS_OFF
325         movl TI_flags(%ebp), %ecx
326         testw $_TIF_ALLWORK_MASK, %cx
327         jne syscall_exit_work
328 /* if something modifies registers it must also disable sysexit */
329         movl EIP(%esp), %edx
330         movl OLDESP(%esp), %ecx
331         xorl %ebp,%ebp
332         TRACE_IRQS_ON
333         sti

시스템 콜은 위에서 불러진 후, 서비스 루틴이 리턴 되었을때 인터럽트를 막고 푸는것 같네요.

혹시 잘못 알고 있다면, Correction 부탁합니다.

Linux rules!!!

Linux rules!!!

leopon의 이미지

제가 지금 학교에서 실습하는 os에서
저러한 기계어 코드를 찾고있는데 잘 안찾아지네요^^;;

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.